mysql如何查询顺序和数据筛选顺序一致,和 in筛选条件顺序一致
在开发过程中,总会遇到许多新的问题,只有不断的学习,不断的总结,才能有所收获。
·
引言
目前正在开发springboot+vue博客项目中的文章浏览量排行榜功能,在开发的过程中遇到了mysql查询出的数据与我传入的数据顺序不一致的问题。
问题发生
我先从redis的zset中获取排行榜由高到低的6篇文章id,然后再在数据库中去查询出这六篇文章的标题。
但是数据库查询执行select * from table_name where column_name in ()
的时候,MySql会自动按照主键自增对查询出的顺序进行排序。
这样返回的数据旧就不符合要求了,因为我要的是排好序了的标题,不然无法与排序好的文章id进行对应
问题解决
使用
Order by field()
使用如下sql语句,即可将查询后的数据排序为我们传入的in的集合的顺序
SELECT * from table_name where column_name in (15,2,7,3,10) order by field (column_name,15,2,7,3,10);
总结
在开发过程中,总会遇到许多新的问题,只有不断的学习,不断的总结,才能有所收获

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)