概述
看到一些网站的某些功能,不由得就会去思考自己如何实现。最近,在逛电商时,看到一些标签关键字搜索。然后按照关键字查出结果。想到依据关键字匹配度进行查询展示。本文从最简单的sql语句方面着手实现关键字匹配搜索实现。
目标
sql语句实现关键字排序**
实现方式
使用instr函数,判断搜索条件是否包含关键字;出现一个累加。
实例
表mt_table需要根据name进行关键字匹配排序。关键字有mt,log等。
普通查询
1 | SELECT id,name FROM mt_table ORDER BY id ASC; |
依据关键字mt,log排序
1 | SELECT id,name,cnt FROM ( |
关键字加权排序
如:包含mt权重10,log权重5。1
2
3
4
5
6SELECT id,name,cnt FROM (
SELECT *,SUM(
(case when instr(name,’mt’)>0 then 10 else 0 end)
+(case when instr(name,’log’)>0 then 5 else 0 end)
) as cnt FROM mt_table GROUP BY id) as temp
ORDER BY cnt desc ,id ASC;
待续…