小编典典

Mysql:按喜欢排序吗?

mysql

假设我们正在使用关键字执行搜索:keyword1,keyword2,keyword3

数据库中有“名称”列的记录:

1:约翰·杜
2:塞缪尔·多伊
3:约翰·史密斯
4:安娜·史密斯

现在查询:

SELECT * FROM users WHERE (name LIKE "%John%" OR name LIKE "%Doe%")

它会选择记录:1,2,3(按此顺序),但我想按示例在关键字中进行排序,keyword1=John, keyword2=Doe
因此应按关键字列出:1,3,2(因为我想在搜索后搜索“ Doe”搜索“约翰”)

我当时在想,SELECT DISTINCT FROM (...... UNION .....) 但是用另一种方式订购它会容易得多(实际查询时间很长)

有什么技巧可以创建这样的订单?


阅读 269

收藏
2020-05-17

共1个答案

小编典典

order by case 
    when name LIKE "%John%" then 1 
    when name LIKE "%Doe%"  then 2 
    else 3 
end
2020-05-17