我的表 SHIRTS
中有一个字段 COLORS (varchar(50))
,其中包含逗号分隔的字符串,例如 1,2,5, 12,15,
。每个数字代表可用的颜色。
当运行查询select * fromshirts where colors like '%1%'
来获取所有红色衬衫(color=1)时,我还得到了颜色为灰色的衬衫(=12 )和橙色(=15)。
我应该如何重写查询,以便只选择颜色 1 而不是所有包含数字 1 的颜色?
最佳答案
经典的方法是在左侧和右侧添加逗号:
select * from shirts where CONCAT(',', colors, ',') like '%,1,%'
但是find_in_set也有效:
select * from shirts where find_in_set('1',colors) <> 0
关于sql - MySQL 查询在逗号分隔的字符串中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51220470/