猿问

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

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

我有个领域COLORS (varchar(50))在我的桌子上SHIRTS,它包含以逗号分隔的字符串,如1,2,5,12,15,..表示可用颜色的每个数字。

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

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


ABOUTYOU
浏览 1323回答 3
3回答

MYYA

最经典的方法是在左边和右边加上逗号:select&nbsp;*&nbsp;from&nbsp;shirts&nbsp;where&nbsp;CONCAT(',',&nbsp;colors,&nbsp;',')&nbsp;like&nbsp;'%,1,%'但查找集也适用于:select&nbsp;*&nbsp;from&nbsp;shirts&nbsp;where&nbsp;find_in_set('1',colors)&nbsp;<>&nbsp;0

明月笑刀无情

查找IN集你的朋友在这个案子里select&nbsp;*&nbsp;from&nbsp;shirts&nbsp;where&nbsp;FIND_IN_SET(1,colors)

宝慕林4294392

看一下查找IN集函数用于MySQL。SELECT&nbsp;*&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;FROM&nbsp;shirts&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;FIND_IN_SET('1',colors)&nbsp;>&nbsp;0
随时随地看视频慕课网APP
我要回答