通过查询在同一个表上的mysql自定义顺序

时间:2016-07-14 06:02:10

标签: mysql

我有类似的数据,它不仅有两个以下的列:

id       |  s_type
1        |  ACTIVE
2        |  PENDING
3        |  UPDATE
4        |  ACTIVE
5        |  PENDING
6        |  UPDATE

我使用了ASC,DESC的订单,但我希望显示带有自定义订单的数据,我想将其显示为我的自定义订单(不仅仅是asc或降序):想要先查看所有PENDING然后所有ACTIVE然后所有UPDATE s_type

id       |  s_type
1        |  PENDING
2        |  PENDING
3        |  ACTIVE
4        |  ACTIVE
5        |  UPDATE
6        |  UPDATE

如何使用单个查询显示

2 个答案:

答案 0 :(得分:1)

试试这个:

class BLcontainerMergedSerializer(serializers.ModelSerializer):
    container = ContainerSerializer()
    class Meta:
        model = BLcontainer

或使用SELECT * FROM yourtable ORDER BY field(s_type, 'PENDING', 'ACTIVE', 'UPDATE'), id

CASE WHEN

答案 1 :(得分:0)

我试过这个并且有效:

      SELECT * FROM mytable ORDER BY 
    s_type = 'UPDATE',
signal_status = 'ACTIVE',
signal_status = 'PENDING'