繁体   English   中英

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

[英]I want to search and replace multiple values in a table column in one MYsql query

查询“ Mysql Table”列中的X更新Y的位置和A更新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)

但是我希望它比2次单独的更新要慢,因为它试图在不符合条件时将每一行的值重置回自身。

您可以通过添加以下内容对其进行一些优化:

update table table set A = if(conditionA, newA, A), B = if(conditionB, newB, B)
where conditionA or conditionB

在某些情况下,这可能比2个查询要快。

您可以执行以下操作:

UPDATE table1
SET
    col1 = CASE WHEN col2 THEN a ELSE col1 END,
    col3 = CASE WHEN col4 THEN b ELSE col3 END

请注意,如果条件失败,这会将值重新设置为自身,从而有效地使其保持不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM