我有一个表,在每行上都有一个单元格,表中有几个逗号分隔的值,例如TAGS=1,2,3,4,5
。如何选择包含TAG 5的所有行?
我尝试了SELECT * FROM videos WHERE tags LIKE %$id%
,但是如果$id
= 2也会遇到问题,例如也选择了12或22 ...
有什么想法吗?
最佳答案
您要将where
语句设置为:
where concat(',', tags, ',') like concat('%,', 5, ',%')
在您的情况下,这将是:
where concat(',', tags, ',') like concat('%,', $id, ',%')
也就是说,您要确保定界符在您要查找的值附近。因此,右侧被评估为
'%,5,%'
。然后,您需要确保列表的每个元素都由定界符包围,包括第一个和最后一个元素。关于mysql - 选择在逗号分隔的单元格中找到变量的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15191447/