id name sol_id
1 abc 2,5,8
2 dt 5,9,10
这里我想为sol_id的id = 1添加一些值(10),因此值10将添加id = 1并且同时id = 2的值10替换为一些空值我希望输出像此
id name sol_id
1 abc 2,5,8,10(here updating)
2 dt 5,9 (10 removing)
我写了这样的查询,但它执行了一个操作,而不是两个
UPDATE my_table SET sol_id=REPLACE(sol_id,',10,',',')
and sol_id = Concat(sol_id, ',', 10) where id = 1
有可能吗?提前致谢
答案 0 :(得分:0)
有可能,但很笨重。
基本上你会做
UPDATE table SET SET field = CASE id
WHEN 1 THEN <formula for the case of id=1>
WHEN 2 THEN <formula for the case of id=2>
END
WHERE ID IN (1, 2);
在TRANSACTION中运行多个查询并且如果需要,在表上运行合适的锁定没有什么好处。