首頁  >  問答  >  主體

MySQL: 在文字(CSV)欄位中尋找符合整數的列

這個表有一個文字列,以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粉336536706P粉336536706180 天前312

全部回覆(1)我來回復

  • P粉885035114

    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

    這裡有示範

    回覆
    0
  • 取消回覆