我有一個用於搜索功能的Mysql SELECT查詢,如果它們與db中的ID匹配,我想檢查一個ID數組。MYSQL ORDER BY CASE 1st CASE應按ID排列
我的客戶希望它以特定的方式排序,所以我將不得不使用ORDER BY CASE,但我似乎無法弄清楚如何將其與ID數組組合。我嘗試使用FIELD函數,但是這似乎不能與ORDER BY CASE結合使用。
有人有什麼建議嗎?
我的ORDER BY至今:
ORDER BY
CASE
WHEN FIELD(p.ID, $implodedArray) THEN '0'
WHEN p.post_title LIKE '%$keyword%' THEN '1'
WHEN pm.meta_value LIKE '%$keyword%' THEN '2'
WHEN p.post_content LIKE '%$keyword%' THEN '3' ELSE '4' END,
在php中使用in_array來知道哪些id應該具有更高的優先級並從此處獲取它。 – Mihai
@Mihai取決於結果的大小,可能是一個巨大的時間沉沒 –