SQL实现指定内容的排序OrderBy

2021-02-23 704点热度 0人点赞 0条评论

需求说明

在使用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/

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论