MySQL: 在文字(CSV)欄位中尋找符合整數的列
P粉336536706
P粉336536706 2024-04-04 18:03:46
0
1
298

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

全部回覆(1)
P粉885035114

可以使用FIND_IN_SET來實作:

select * 
from my_table 
where id = 90 or FIND_IN_SET(90, linked_folders) > 0

這裡有示範

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!