栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

按一组关键字的出现对sql结果进行排序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

按一组关键字的出现对sql结果进行排序

关于MySQL的美好之处,取决于您的观点。它以认为您希望对其进行处理的方式对待数据。

1 +'1'
?很明显,您想将字符串当作数字对待,因此它很高兴为您执行加法。

也适用于布尔操作数(只需要注意运算符的优先级)。

(a like '%foo%') + (a like'%bar%')
识别数字上下文,将布尔结果
true
视为
1
和布尔结果
false
视为
0
-本质上是为您计算关键字匹配项。

你怎么用呢?把你的

where
条款,替换所有
or
+
,并确保每个单独
like
的语句被包裹在括号,然后
order by
它。

例如:

order by (concat(title, description) like '%keyword1%')   + (concat(title, description) like '%keyword2%') desc

您可以使用来完成类似的操作

fulltext index
,但是权重可能有些奇怪。语法如下:

create fulltext index idx on search_table(title, description)

^^只需做一次。

select *  from search_table  where match(title, description) against ('keyword1 keyword2 ...')  order by match(title, description) against ('keyword1 keyword2 ...') desc

这具有极大的好处,那就是构造查询的烦恼要少得多。

这是为您演示两种方法的概念证明。(尽管仅针对单个列-
但却能说明要点)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431511.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号