我在表格中有下一个信息
name categories
------ -----------
John 1,4
Jim 4,1
JAck 4,1
之间的其他。
我想选择与类别4相关的所有行,但是这句话......
SELECT name, categories
FROM `mytable`
WHERE 4 IN (categories)
只返回“Jim”和“Jack”,但不返回“John”。我做错了什么?
编辑:遗憾的是我无法更改表格的结构。我需要使用那个逗号列表样式
答案 0 :(得分:0)
我不确定您为什么要在单个列中存储以逗号分隔的列表。但是你不能改变表结构,你会想要使用LIKE
来比较数据:
select name, categories
from yourtable
where categories like '%4%'
或者您可以使用FIND_IN_SET
功能:
select name, categories
from yourtable
where FIND_IN_SET(4,categories) > 0
我的建议是将您的表格更改为不以逗号分隔格式存储您的数据,它只会导致问题。