语句如下:
select name from test where name like '%测试%'表数据如下:ID Name
1 测试1
2 测试
我想要的结果是 按搜索词的匹配度最高的记录排在最前面,即:
2 测试
1 测试1请问 Mysql 中 是否有相关的参数可以设置?如果是 union all 就算了,程序处理的也就算了
select name from test where name like '%测试%'表数据如下:ID Name
1 测试1
2 测试
我想要的结果是 按搜索词的匹配度最高的记录排在最前面,即:
2 测试
1 测试1请问 Mysql 中 是否有相关的参数可以设置?如果是 union all 就算了,程序处理的也就算了
解决方案 »
- 恳求 Mysql 内容重复问题
- 模糊查询的效率怎么这么低呢?
- MySql安装问题,急!
- windows下,mysql建表是为什么不允许插入中文
- 请帮忙分解一个mysql的语句
- 请教一个统计方面的sql写法
- mysql中如何得到服务器下所有数据库
- 请问hibernate可以更新视图里的数据吗?
- 如何在makefile中指定MYSQL的头文件和库的路径及GNOME的头文件和库的路径?
- 服务器(centos)意外损坏,mysql数据库.frm和.idb和ibdata1都在的情况下,怎么恢复数据
- innodb 表修复问题,select错误ERROR 1033 (HY000):Incorrect information in file: './blog/b
- linux中运行pg_restore后转入后台运行
order by length(replace(Name,'测试',''))
ORDER BY LENGTH(REPLACE(NAME,'测试',''))
很感谢,你的方法我也想到过,但是出于对效率的担心,暂时还未使用,到这里发帖是想看看有没有其他的思路
SELECT * FROM tty3 ORDER BY INSTR(CONCAT(',',`name`,','),',测试,') desc
对字符操作速度不会快
SELECT * FROM tty3
ORDER BY CONCAT(',',`name`,',') REGEXP ',测试,' desc
SELECT * FROM tty3
ORDER BY FIND_IN_SET('测试',`name`) desc
下面的数据你准备如何排序?
ID Name
1 测试1
2 测试
3 测试1234
4 12测试
5 测试12
6 14322r3测试134153
7 123测试123
同问,补充
测试 VS 测试测试 VS 测试测试测试
如: ID Name OrdreBy
1 测试1 1
2 测试 0