我想在一个MYsql查询中搜索和替换表列中的多个值
查询Mysql表列中的Where X update Y和Where A update B 在MYsql中,如何在特定表的同一列上的一个查询中实现这一点。 我想搜索和替换表列中的多个值 第1列表1中的条件我想在一个MYsql查询中搜索和替换表列中的多个值,mysql,replace,Mysql,Replace,查询Mysql表列中的Where X update Y和Where A update B 在MYsql中,如何在特定表的同一列上的一个查询中实现这一点。 我想搜索和替换表列中的多个值 第1列表1中的条件 Where X update Y and Where a update b and Where 1 update 2 and Where 3 update 4 and Where value1 update value 2 等等 我可以单独做这件事,但我怎样才能做得更快?有没有mysql函数
Where X update Y
and
Where a update b
and
Where 1 update 2
and
Where 3 update 4
and
Where value1 update value 2
等等
我可以单独做这件事,但我怎样才能做得更快?有没有mysql函数可以帮我解决这个问题
我有大约120列,每列有200个搜索和替换/更新值
谢谢。您可以使用以下内容:
update table table set A = if(conditionA, newA, A), B = if(conditionB, newB, B)
UPDATE table1
SET
col1 = CASE WHEN col2 THEN a ELSE col1 END,
col3 = CASE WHEN col4 THEN b ELSE col3 END
但我预计它会比两个单独的更新慢,因为它试图在不符合条件时将每一行的值重置回自己
您可以通过添加以下内容对其进行优化:
update table table set A = if(conditionA, newA, A), B = if(conditionB, newB, B)
where conditionA or conditionB
在某些情况下,这可能比2次查询快。您可以使用以下方法:
update table table set A = if(conditionA, newA, A), B = if(conditionB, newB, B)
UPDATE table1
SET
col1 = CASE WHEN col2 THEN a ELSE col1 END,
col3 = CASE WHEN col4 THEN b ELSE col3 END
但我预计它会比两个单独的更新慢,因为它试图在不符合条件时将每一行的值重置回自己
您可以通过添加以下内容对其进行优化:
update table table set A = if(conditionA, newA, A), B = if(conditionB, newB, B)
where conditionA or conditionB
在某些情况下,这可能比2次查询快。您可以执行以下操作:
update table table set A = if(conditionA, newA, A), B = if(conditionB, newB, B)
UPDATE table1
SET
col1 = CASE WHEN col2 THEN a ELSE col1 END,
col3 = CASE WHEN col4 THEN b ELSE col3 END
请注意,如果条件失败,这会将一个值设置回自身,从而有效地使其保持不变。您可以执行以下操作:
update table table set A = if(conditionA, newA, A), B = if(conditionB, newB, B)
UPDATE table1
SET
col1 = CASE WHEN col2 THEN a ELSE col1 END,
col3 = CASE WHEN col4 THEN b ELSE col3 END
请注意,如果条件失败,这会将一个值设置回自身,从而有效地使其保持不变。或者,如果我不可能,请告诉我,这样我就不会再为以创新的方式完成这项工作而绞尽脑汁了。您的问题非常令人困惑。你所说的
Where 1 update 2
是什么意思。在此上下文中,什么是1
?它是从哪里来的?或者如果我不可能的话,请告诉我,这样我就不用再为以创新的方式完成这项工作而头痛了。你的问题非常令人困惑。你所说的Where 1 update 2
是什么意思。在此上下文中,什么是1
?它来自哪里?