我有一個SQL字段定義爲set('nightlife', 'food', 'sports', 'culture', 'movies', 'general')
查詢SQL設置
現在我想運行一個查詢,我通過例如nightlife,food
和我想要的結果包含所有記錄中,其中含有類夜生活或食物。因此,例如nightlife,culture,sports
的記錄也應歸還,因爲它包含夜生活。我不知道如何運行這個。我試圖用以下方式使用IN
關鍵字:
'SELECT ... FROM table WHERE '$category' IN Categories
但是,這是行不通的。
UPDATE
運行下面的查詢建議回答:
SELECT *
FROM images
WHERE id = '2650225'
AND WHERE FIND_IN_SET('sports', Categories) >0
OR FIND_IN_SET('nightlife', Categories) >0
ORDER BY delete_at ASC
LIMIT 10
OFFSET 0
接收以下錯誤:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE find_in_set('sports', Categories) > 0 or find_in_set('nightlife', Categori' at line 1
一種選擇是使用'FIND_IN_SET( '夜生活',類別)> 0或FIND_IN_SET( '食物',類別)> 0'。您無法同時搜索多個值 - 您需要使用「或」。 – sgeddes
好吧,如果我在'夜生活,食物'中尋找'夜生活'這項工作還是必須搜索'夜生活,食物'來匹配? – Alk
我認爲你需要使用'find_in_set'或'like' - 我不認爲'in'會在搜索集合時起作用。 – sgeddes