我有一个用于搜索功能的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取决于结果的大小,可能是一个巨大的时间沉没 –