现在我有这样的桌子
--------------------------
merge_id | merge_combo |
--------------------------
A1 | 25,9 |
A2 | 25,21 |
A3 | 2,5,15 |
A4 | 2,9,5 |
A5 | 12,19,2 |
A6 | 2,1 |
--------------------------
例如现在如果我传递值9,那么它应该检查merge_combo并删除具有9的行(A1,A4这两个具有9的行)
最佳答案
您可以使用find_in_set()
执行此操作:
delete from tbl
where find_in_set(9, merge_combo) > 0;
更大的问题是您将数字存储在列表的字符串中。 SQL具有用于存储列表的强大数据结构-称为表。在这种情况下,您需要一个联结表,每个
merge_id
和组合项都有一行。