作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有以下疑问:
SELECT * FROM table_name
WHERE (col_1 LIKE '%$keyword%'
OR col_2 LIKE '%$keyword%'
OR col_3 LIKE '%$keyword%')
AND .... <some optional filters> ...
是否有根据最相关的结果进行排序的策略?
最佳答案
如果您的意思是 col_1 比 col_2 更相关等等,那么:
select *
,case when col_1 like '%$keyword%' then 1
when col_2 like '%$keyword%' then 2
when col_3 like '%$keyword%' then 3
end as [priority]
from table_name
where col_1 like '%$keyword%'
or col_2 like '%$keyword%'
or col_3 like '%$keyword%'
order by [priority]
如果您的意思是最多列匹配,那么:
select *
,(case when col_1 like '%$keyword%' then 1 else 0 end) +
,(case when col_2 like '%$keyword%' then 1 else 0 end) +
,(case when col_3 like '%$keyword%' then 1 else 0 end) as [priority]
from table_name
where col_1 like '%$keyword%'
or col_2 like '%$keyword%'
or col_3 like '%$keyword%'
order by [priority] desc
关于mysql - 按最强 LIKE 排序 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11144394/
这个问题在这里已经有了答案: 关闭 12 年前。 Possible Duplicate: C pointer to array/array of pointers disambiguation 在
我是一名优秀的程序员,十分优秀!