如何在 mysql 查询中获得排序结果?
how to get a sorted result in mysql query?
我正在尝试从 MySQL 查询中获取排序结果,但我不知道如何进行查询。
我有一个例子Mysql table如下:
id | cat_type
1 | free
2 | free
3 | free
4 | free
5 | paid
6 | paid
... | ...
... | ...
... | ...
and it goes on.
从上面得到的结果应该是这样的 table :
id | cat_type
1 | free
2 | free
5 | paid
3 | free
4 | free
6 | paid
... | free
... | free
... | paid
and goes on(should be sorted)
总结果应拆分为 3。在前三个结果中,前两个应为 free
,下一个应为 paid
同样,所有剩余结果应为两个free
和一个 paid
.
知道如何使用查询完成此操作吗?
注意:最重要的是,它应该分为两个免费和一个付费。不是按 ID。
谢谢。
对于您的特定数据,您可以这样做:
order by (case when cat_type = 'free' then id*1.0
else 2*id - 7.5
end)
这似乎非常神秘。如果你有一个更一般的问题,你应该问另一个问题,更好地描述你真正想要完成的事情。
我正在尝试从 MySQL 查询中获取排序结果,但我不知道如何进行查询。
我有一个例子Mysql table如下:
id | cat_type
1 | free
2 | free
3 | free
4 | free
5 | paid
6 | paid
... | ...
... | ...
... | ...
and it goes on.
从上面得到的结果应该是这样的 table :
id | cat_type
1 | free
2 | free
5 | paid
3 | free
4 | free
6 | paid
... | free
... | free
... | paid
and goes on(should be sorted)
总结果应拆分为 3。在前三个结果中,前两个应为 free
,下一个应为 paid
同样,所有剩余结果应为两个free
和一个 paid
.
知道如何使用查询完成此操作吗?
注意:最重要的是,它应该分为两个免费和一个付费。不是按 ID。
谢谢。
对于您的特定数据,您可以这样做:
order by (case when cat_type = 'free' then id*1.0
else 2*id - 7.5
end)
这似乎非常神秘。如果你有一个更一般的问题,你应该问另一个问题,更好地描述你真正想要完成的事情。