开发者社区> 问答> 正文

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

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

运行查询select * from shirts where colors like '%1%'以获取所有红色衬衫(颜色= 1)时,我还会获取颜色为灰色(= 12)和橙色(= 15)的衬衫。

我应该如何重写查询,以便仅选择颜色1而不是选择所有包含数字1的颜色?

展开
收起
保持可爱mmm 2020-05-10 17:12:01 639 0
1 条回答
写回答
取消 提交回答
  • 经典方法是在左右添加逗号:

    select * from shirts where CONCAT(',', colors, ',') like '%,1,%' 但是find_in_set也可以:

    select * from shirts where find_in_set('1',colors) <> 0 分享来源:stack overflow

    2020-05-10 17:12:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像