假设我们正在使用关键字进行搜索:keyword1,keyword2,keyword3
数据库中有“名称”列的记录:
1: John Doe 2: Samuel Doe 3: John Smith 4: Anna Smith
now Query:
SELECT * FROM users WHERE (name LIKE "%John%" OR name LIKE "%Doe%")
它将选择记录:1,2,3(按此顺序)
但我想按关键字订购
例如 keyword1=John,keyword2=Doe
所以它应该按关键字列出:1,3,2(因为我想在搜索“John”后搜索“Doe”)
我在考虑 SELECT DISTINCT FROM (...... UNION .....)
但是以另一种方式订购它会容易得多(真正的查询真的很长)
有什么技巧可以创建这样的顺序吗?
最佳答案
order by case
when name LIKE "%John%" then 1
when name LIKE "%Doe%" then 2
else 3
end
关于mysql:按like排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609166/