我的MySQL表中有一个用逗号分隔的id填充的列。 我想更新csv列表中包含其itemID的所有行:
UPDATE items SET ... WHERE itemID IN(SELECT <csv items id> FROM list WHERE ...)
不幸的是,这只会影响csv列表中的第一个itemID。
我也试过这个:
SELECT @csv := <csv items id> FROM list WHERE ...;
UPDATE items SET ... WHERE itemID IN(@csv);
同样的事情,只有csv列表中的第一个值得到更新。
以下是一些可说明的照片:
答案 0 :(得分:1)
我建议使用FIND_IN_SET(如果结果是!=那么,ItemID匹配comma_delimited_string中的值
UPDATE items
SET your_column = your_result
WHERE FIND_IN_SET(ItemID, your_comma_delimited_string) != 0;