我有一个表,在每行上都有一个单元格,表中有几个逗号分隔的值,例如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/

10-13 08:49