在MySQL中查询逗号分隔字符串中的值
P粉763748806
2023-08-17 14:24:54
<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>
FIND_IN_SET在这种情况下是你的朋友
经典的方法是在左右两边添加逗号:
但是find_in_set也可以使用: