现在我有这样的桌子

--------------------------
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和组合项都有一行。

09-10 05:10
查看更多