mysql 分页查询,如何用一句sql将全等匹配查出来的放前面,模糊查询出来的放后面?

举个栗子:
查用户表,分页 limit(0, 10),用户输入了一个字符串“张三”,我想要的是查用户表中username=“张三”的记录先查询出来,比如查出3条,还差的7条可以是username like “%张三%”的数据。所以最终我得到的10条数据的前三条的username一定的全等 “张三”的,后7条是模糊等于“张三”的,有没有这样的一条sql可以直接查出这样的结果?

阅读 2.7k
1 个回答

排一下序就行嘛,比如:
`ORDER BY username LIKE CONCAT('%','张三','%') DESC
LIMIT 0,10`
这里DESC代表相关性从大到小
强制让全等条件在前面可以再加一个排序条件:
`ORDER BY username = '张三' DESC, username LIKE CONCAT('%','张三','%') DESC
LIMIT 0,10`

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题