需求说明
在使用SQL查询的时候,一般排序的时候,会根据order by column asc/desc,来根据某个字段的降序或者升序来排列,但是有时候,需要我们指定的特定序列来排列。
实现
比如有一个表(动物表)t_animal(id,name,type_name),根据栏位:type_name 特定的顺序来排列(type_name里有tiger cat dog)我们就要根据tiger dog cat这3个类型的现在这样的顺序来排列,SQL如下
SELECT id, name, type_name FROM t_animal ORDER BY case when type_name = 'tiger' then 1 when type_name = 'dog' then 2 when type_name = 'cat' then 3 else 4 end, status
另一种,多数在select * from table where some_field in ... 的时候,按照in里面的数组排序的方法,详见:https://blog.terrynow.com/2022/08/10/mysql-order-by-specific-in-table-elements/
文章评论