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

标签 sql mysql database

我的表 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/55273972/

相关文章:

sql - Sqoop:将来自不同SQL数据库的几个表导入到HDFS中的单个CSV中?

mysql - 通过 SQL 脚本运行存储过程时出现问题,以前一直有效,直到我将其中一个参数从 Varchar 更改为 Int

PHP、MySQL : How to get the user's first and last name

.net - Visual Studio 中本地数据库缓存项目类型的用途是什么?

php - 如何连接表以查找不存在的项目

sql - 我是否需要使用函数来遍历唯一记录以进行批量更新?

MySQL垂直连接多个表

php - 哪种使用查询的方式会有效?

database - 创建插入触发器

php - 大表中的 SQL 随机行(带 where 子句)