以逗号分隔更新值,并使用查询中的值替换

时间:2015-10-27 13:19:13

标签: mysql

我有这样的表

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

有可能吗?提前致谢

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中运行多个查询并且如果需要,在表上运行合适的锁定没有什么好处。