我遇到了在主题中命名的问题。 我试图在一个查询中更新表中的多行,具体取决于行的特定ID。我想要更新的不幸行是文本类型的数据(数字数据很容易)。这是我的问题:
UPDATE table SET column = CASE
WHEN id = 2 THEN column = column + ', 100'
WHEN id = 3 THEN column = column + ', 10'
[...]
ELSE column
END;
列中的数据从php内爆,所以它看起来像:
id | column
------------
2 | 5, 6, 20
3 | 7, 12, 200
执行查询后,我希望:
id | column
------------
2 | 5, 6, 20, 100
3 | 7, 12, 200, 10
如何将这些值添加到指定的行?现在它将id为2和3的'column'行更改为0(就像它是一个整数类型的值)。
我还想问你如何从列中删除特定值而不是添加它:
id | column
------------
2 | 5, 7, 20
3 | 7, 12, 200
我希望从两行中删除'7',ID为2和3,所以在查询后它看起来像这样:
id | column
------------
2 | 5, 20
3 | 12, 200
任何帮助将不胜感激 - 我坚持下去:/
答案 0 :(得分:0)
对于插入:
UPDATE table
SET column = CASE
WHEN id = 2
column = CONCAT(column, ', 100')
WHEN id = 3
column = CONCAT(column, ', 10')
ELSE 0
END
对于删除,你可以像dis一样。对不起,我现在无法执行查询。没有经过测试!
UPDATE table
SET column = CASE
WHEN id = 2
column = replace(column,', 7','')
WHEN id = 3
column = replace(column,', 7','')
ELSE 0
END
用于更新:如果要将值更改为7到
UPDATE table
SET column = CASE
WHEN id = 2
column = replace(column,'7','14')
WHEN id = 3
column = replace(column,'7','14')
ELSE 0
END