0

我需要编写一个查询,在多个列中找到一个值,然后更新那些存在该值的列。

需要替换的值在以 _m1 结尾的列中

示例表:

o_id a_m1 a_m2 b_m1 b_m2
1 bb cc bb cc
2 cc 空 bb cc

我需要在以 _m1 结尾的列中找到所有“cc”值,然后将这些列更新为“bb”

4

1 回答 1

0
UPDATE TABLENAME
  SET a_m1=REPLACE(a_m1,'cc','bb'),
      b_m1=REPLACE(b_m1,'cc','bb')

或者

SELECT a_m1 = CASE WHEN a_m1='cc' THEN 'bb' ELSE a_m1 END,
       b_m1 = CASE WHEN b_m1='cc' THEN 'bb' ELSE b_m1 END

笔记:

它们做两件不同的事情——我不确定你想要什么。

它们都只修改 a_m1 和 b_m1。

首先,字符串中cc出现的每个位置都替换为bb

在第二个中,如果值完全相等,cc则将其更改为bb否则没有更改。

于 2013-01-25T19:33:06.223 回答