SELECT id, title, SUM((CASE WHEN title LIKE '%复仇者%' THEN 1 ELSE 0 END)+(CASE WHEN title LIKE '%联盟%' THEN 1 ELSE 0 END)) as rnt FROM `hash` WHERE title LIKE '%联盟%' group by id ORDER by rnt DESC

关键1.就是这个SUM()求和函数

关键2.该SUM函数要搭配子句:group by id 一起使用才会有效果。

关键3.ORDER by rnt DESC //rnt 是sum函数计算后的变量,按这个值的倒序desc排序将最相关匹配的内容排在最前面。

实测数据库1万4千行,耗时0.1746 秒,共 65 行,个人觉得这方法也太慢了。。。后期修改为 CASE WHEN 语句 和他match against 全文索引期待效果更好。

参考:

多关键字查询并根据匹配程度排序

https://blog.csdn.net/prstaxy/article/details/9164837

mysql数据库中group by和sum一起使用语句的简单介绍 .

https://www.cnblogs.com/zhenmingliu/archive/2012/04/19/2457444.html

还有另一种方法,不过这种方法太过精准了(全文索引操作符)

https://www.cnblogs.com/devcjq/articles/6340111.html

经实战学习以后得出个人总结:select....from 前面是计算,from..... 后面是范围。意思是在这个范围内计算。

mysql排序加权_mysql多关键词查询相关匹配加权排序相关推荐

  1. sql server如何输出排序序号_Group by中子查询order by排序失效问题分析

    通过sql分组查询数据时,一般通过group by来完成,group by默认取相同的分组列(一列或者多列)中第一个数据. 如果想获取sql分组中id最大的记录,我们可能想到的sql如下(name列作 ...

  2. mysql的查询排序规则_mysql 如何查看数据库字符集和排序规则

    查看数据库编码 (即字符集) show create database 数据库名; 查看数据表编码 (即字符集) show create table user 查看数据表全部字段排序规则 (即utf8 ...

  3. mysql 索引计划_Mysql索引、查询计划、优化方向

    索引 Innodb索引(聚集索引)(聚簇表分布) Innodb是索引组织表,其结构是B+Tree.其表索引结构是聚簇表分布. 其叶子节点保存了Key+Row Data(聚集索引,按主键排序),其Key ...

  4. mysql排重_mysql 排重查询

    GROUP BY 语句可以实现某一列的去重查询. 直接上语句: select io_dev_id from io_info where (TID=1 AND host_name='yang1') GR ...

  5. mysql score表_MySQL连表查询练习题

    建库 库名:linux50 字符集:utf8 校验规则:utf8_general_ci mysql> create database if not exists linux5 charset u ...

  6. mysql复数记录_mysql 数据库设计查询规范

    (一)建表规约 1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint(1表示是,0表示否) .说明:任何字段如果为非负数,必须是unsigned. ...

  7. mysql course表_MySQL多表查询初探

    今天是我时隔五年再次动起键盘写文章,距离我上一次写文章,初中作文......所以我的文章并没有雕章琢句,更不会惊天地泣鬼神,只要大家能学到知识,我就很开心了.呀丫丫......又开始罗嗦一大堆没用的了 ...

  8. mysql select表达式_MySQL数据库SELECT查询表达式解析

    数据的管理在很大一部分是在进行查找工作,而SELECT占据了很大的一部分 SELECT select_expr [,select_expr...] [ FROM table_reference WHE ...

  9. mysql存储树结构_mysql 树形结构查询(存储过程)

    就用数据数据库表地址数据(中国地区) 来说吧(用Windows 请使用 gbk !!) 可直接运行(去除注解) 存储过程: DELIMITER//dropprocedureifexistsfindLC ...

最新文章

  1. Linux下查看Nginx,tomcat等的并发连接数和连接状态
  2. 区块链c端应用小程序_区块链如何真正起作用? 我建立了一个应用程序向您展示。...
  3. 关于eigrp-FSM有限状态机的资料
  4. ssh实现基于密钥方式登录系统
  5. 英语语法---单词总结
  6. JS Array filter()方法
  7. 物联网网关linux带串口,物联网网关|串口转HTTP GET协议
  8. 项目学生:带有Jersey的Web服务客户端
  9. 数据分析工具篇——数据读写
  10. 服务器系统server 2008,windows server 2008 R2 操作系统
  11. MySQL数据步骤管控_数据管理的发展过程分为哪三个阶段
  12. 神州租车:陆正耀辞任公司董事会主席及非执行董事职务
  13. 【数据结构----笔记4】插入排序算法之【折半插入排序算法】
  14. 离开Autodesk,开启新篇章
  15. java jws-_java JWS 应用及实践
  16. JSP系列一:JSP简介
  17. EeePC 901换装Windows XP的步骤
  18. 数字的大写字母的乱序整理
  19. 百度地图测距 java_java 百度地图判断两点距离1
  20. Java 多线程 | 并发知识问答总结

热门文章

  1. ClassCastException:AdaptiveIconDrawable cannot be cast to BitmapDrawable
  2. python 生成pdf_如何使用Python生成PDF?
  3. c 自定义实现string类 clear_CC++语言15|类的继承和派生实现代码重用、扩充
  4. 如何查看Linux版本号(内核版本号和发行版本号)
  5. 【转】BASE64编码规则
  6. 第五节:泛型(泛型类、接口、方法、委托、泛型约束、泛型缓存、逆变和协变)
  7. ABP入门系列(17)——使用ABP集成的邮件系统发送邮件
  8. 在Sharepoint 2010中使用ReportViewer控件展示RDLC报表
  9. vs c语言 多线程demo,一个多线程的Socket通信Demo(C语言实现)
  10. 用姓名字段统计人数_基于 Wide amp; Deep 网络和 TextCNN 的敏感字段识别