[英]Mysql Query to Select data where, WHERE clause contains both comma separated and individual values
[英]write where clause query in MySQL from comma separated IDs
我的帖子表中有很多博客帖子。 假設,
+----+----------------------+-------------------------+
| id | title | categories |
+----+----------------------+-------------------------+
| 1 | title 1 | 234, 235, 243 |
| 2 | title 2 | 237 |
| 2 | title 3 | 234, 243 |
+----+----------------------+-------------------------+
現在,我試圖選擇所有類別為243的帖子。我已經嘗試使用FIND_IN_SET
函數,如果id是類別字段中的第一個數字,則該函數可以選擇帖子。
我當前的查詢是這樣的SELECT * FROM posts WHERE FIND_IN_SET(235, Category) <> 0 ORDER BY PostId DESC
提前致謝。
您應該知道將類別存儲在這樣的列表中是多么糟糕的主意。 原因如下:
因此,您應該修復數據以使用聯結表。
有時,我們對其他人的錯誤設計決定感到震驚。
在這種情況下,問題將出在列表中。 嘗試這個:
WHERE FIND_IN_SET(235, replace(Category, ' ', '') > 0
或者,或者:
WHERE CONCAT(', ', 235, ', ') LIKE CONCAT('%, ', Category, ', %')
但是,我鼓勵您正確使用關系數據結構並實現聯結表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.