在MySQL中查询逗号分隔字符串中的值
P粉763748806
P粉763748806 2023-08-17 14:24:54
0
2
440
<p>我在我的表<code>SHIRTS</code>中有一个字段<code>COLORS (varchar(50))</code>,它包含一个逗号分隔的字符串,例如<code>1,2,5,12,15,</code>。每个数字代表可用的颜色。</p> <p>当运行查询<code>select * from shirts where colors like '%1%'</code>来获取所有红色的衬衫(颜色=1)时,我还会得到颜色为灰色(=12)和橙色(=15)的衬衫。</p> <p>我应该如何重写查询,以便只选择颜色为1而不是包含数字1的所有颜色?</p>
P粉763748806
P粉763748806

全部回复(2)
P粉036800074

FIND_IN_SET在这种情况下是你的朋友

select * from shirts where FIND_IN_SET(1,colors)
P粉254077747

经典的方法是在左右两边添加逗号:

select * from shirts where CONCAT(',', colors, ',') like '%,1,%'

但是find_in_set也可以使用:

select * from shirts where find_in_set('1',colors) <> 0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!