当前位置: 首页 > 后端技术 > Python

小知识-SQL自定义排序

时间:2023-03-26 00:16:26 Python

问题场景在写业务的过程中,发现用SQL查询数据时,并没有按照我想要的顺序排序,而是按照系统顺序排序。o(╥﹏╥)oSELECT*FROMtable_nameWHEREidin(3,4,1,2)我以为不用ORDERBY排序也会按照给定的顺序输出数据,所以想当然了!自定义查询FIELDINSTRLOCATE#FIELDSELECT*FROMtable_nameWHEREidin(3,4,1,2)ORDERBYFIELD(待排序的字段,自定义顺序)#根据id排序,自定义顺序为2,3,1,4SELECT*FROMtable_nameWHEREidin(3,4,1,2)ORDERBYFIELD(id,2,3,1,4)#INSTR#按照id的2,4,1,3的顺序排序SELECT*FROMtable_nameWHEREidin(3,4,1,2)ORDERBYINSTR('2,4,1,3',id)#LOCATESELECT*FROMtable_nameWHEREidin(1,2,3,4)ORDERBYLOCATE(id,'2,4,3,1')Peewee使用自定义排序#SQL函数可以拼接sql语句frompeeweeimportSQL#idsisalistids=[2,3,4,1]str_ids=",".join(ids)query=MyModel.select().where(MyModel.id<