我需要编写一个查询,在多列中查找单个值然后更新 存在该值的那些列。
需要替换的值位于以_m1
结尾的列中示例表:
o_id a_m1 a_m2 b_m1 b_m2 1 bb cc bb cc 2 cc null bb cc
我需要在以_m1结尾的列中找到所有“cc”值,然后将这些列更新为“bb”
答案 0 :(得分:0)
UPDATE TABLENAME
SET a_m1=REPLACE(a_m1,'cc','bb'),
b_m1=REPLACE(b_m1,'cc','bb')
OR
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
,否则不会更改。