這個表有一個文字列,以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可能行不通,因為我不知道逗號前後是否存在。
我有什麼替代方案嗎?
P粉8850351142024-04-05 14:04:01
可以使用FIND_IN_SET
來實作:
select * from my_table where id = 90 or FIND_IN_SET(90, linked_folders) > 0