日期:2014-05-17  浏览次数:20682 次

Mysql数据模糊查询的结果如何根据查询条件进行排序
mysql数据模糊查询结果模糊查询如何根据查询条件进行排序,譬如
usertable表结构有三个字段uid,username,age
SELECT * FROM usertable WHERE username LIKE '%测%' 
查询的结果如下
uid username         age
5 安安测   11
9 测人人 12
10 测发 34
2 测测 12
1 测试 11
3 测试试 23
4 点点测 12
如何排序使开头为测字排在前面

------最佳解决方案--------------------
SELECT * FROM usertable WHERE username LIKE '%测%'  order by case when username LIKE '测%' then 1 else 0 end desc 
------其他解决方案--------------------
SELECT * FROM usertable WHERE username LIKE '测%' 
union all
SELECT * FROM usertable WHERE username LIKE '%测%' and not username LIKE '测%'  
------其他解决方案--------------------
引用:
SELECT * FROM usertable WHERE username LIKE '%测%'  order by case when username LIKE '测%' then 1 else 0 end desc


刚才测试了,非常管用,谢谢啦 
------其他解决方案--------------------
引用:
SELECT * FROM usertable WHERE username LIKE '测%' 
union all
SELECT * FROM usertable WHERE username LIKE '%测%' and not username LIKE '测%'

感谢你啦,您的方法也是可以的,但是我觉得性能不够好,不过感谢你的回帖谢谢!!