sql - MySQL查询以逗号分隔的字符串查找值

标签 sql mysql database

我的表 SHIRTS 中有一个字段 COLORS (varchar(50)),其中包含逗号分隔的字符串,例如 1,2,5, 12,15,。每个数字代表可用的颜色。

当运行查询 select * from shirts where colours 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/5033047/

相关文章:

MySQL (Windows10) 使用 MyISAM 表进行全文搜索不起作用

mysql复杂的join,有人吗?

php - 用php和数据库选择的下拉框

SQL Server 订阅需要使用 azure 的实际服务器名称

sql - SQL 中 IN 和 ANY 运算符的区别

mysql - 对用户重新排序 按积分排序的排名

AngularJS:将本地化的用户输入数据存储在翻译 json 文件或数据库中

php - 如果已分配给 orderno,则选择不显示的查询

c# - C# 中的 XML 解析(在 C# 中修复 XML 文档)

database - 在 influxdb 0.9.x 中合并时间序列