Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想在一个MYsql查询中搜索和替换表列中的多个值_Mysql_Replace - Fatal编程技术网

我想在一个MYsql查询中搜索和替换表列中的多个值

我想在一个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函数

查询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函数可以帮我解决这个问题

我有大约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
?它来自哪里?