这个表有一个文本列,以CSV格式存储对其他记录的引用,例如:
+----+----------------+ | id | linked_folders | +----+----------------+ | 90 | NULL | | 91 | NULL | | 92 | 123,1,4,40 | | 93 | 123,1 | | 94 | NULL | | 95 | 235,8 | | 96 | 90 | | 97 | NULL | | 98 | NULL | | 99 | NULL | +----+----------------+ $id = 90; SELECT * FROM my_table WHERE id = $id OR $id is in linked_folders
上面的伪查询应该返回行90和96。
我想匹配我拥有的某个确切值是否在这个字段上。
我在想使用LIKE可能行不通,因为我不知道逗号前后是否存在。
我有什么替代方案吗?
可以使用
FIND_IN_SET
来实现:这里有演示