登录
首页 >  数据库 >  MySQL

小知识-SQL 自定义排序

来源:SegmentFault

时间:2023-01-14 13:27:55 450浏览 收藏

本篇文章给大家分享《小知识-SQL 自定义排序》,覆盖了数据库的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题场景

在一次写业务的过程中,发现在使用 sql 查询数据的时候,不是按照我希望的顺序进行排序的,而是根据系统顺序进行排序的.o(╥﹏╥)o

SELECT * FROM table_name WHERE id in (3,4,1,2)

我以为不加

# FIELD
SELECT * FROM table_name WHERE id in (3,4,1,2) ORDER BY FIELD (需要排序的字段,自定义的顺序)

# 根据 id 进行排序,自定义的顺序为 2,3,1,4
SELECT * FROM table_name WHERE id in (3,4,1,2) ORDER BY FIELD (id,2,3,1,4)

# INSTR
# 按照 id 的 2,4,1,3 顺序进行排序
SELECT * FROM table_name WHERE id in (3,4,1,2) ORDER BY INSTR('2,4,1,3',id)

# LOCATE
SELECT * FROM table_name WHERE id in (1,2,3,4) ORDER BY LOCATE(id,'2,4,3,1')

peewee 中使用自定义排序

# SQL 函数可以拼接 sql 语句
from peewee import SQL
# ids是一个 list
ids= [2,3,4,1]
str_ids = ",".join(ids)
query = MyModel.select().where(MyModel.id 

今天关于《小知识-SQL 自定义排序》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>