SQL in子句,在列上,不能正常工作

时间:2018-04-06 15:59:59

标签: mysql sql list where

我有一张名为' product'它有一个名为' id_subcategory'的列。 此列包含以逗号分隔的数字列表。

问题是此查询只有在列表中的第一个时才会找到91号码。否则返回0.而且不行。

SELECT COUNT(*) FROM product WHERE 91 IN (id_subcategory);

我该怎么办?

1 个答案:

答案 0 :(得分:2)

您可能需要WHERE ',' || id_subcategory || ',' LIKE '%,91,%'

由于领先%,因此不会使用索引,因此如果您需要经常查询子类别,则应考虑不存储逗号分隔列表。