小编典典

如何在mysql查询中得到排序的结果?

sql

我试图从MySQL查询中得到排序的结果,但我不知道要进行查询。

我有一个示例Mysql表,如下所示:

     id | cat_type
     1  |  free
     2  |  free
     3  |  free
     4  |  free
     5  |  paid
     6  |  paid
    ... |  ...
    ... |  ...
    ... |  ...
   and it goes on.

结果应如下表所示:

     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同样,所有其余结果应分类为2free和1 paid

任何想法如何使用查询完成此操作?

注意:最重要的是,应将其分类为两个免费和一个付费。不按ID。

谢谢。


阅读 160

收藏
2021-05-16

共1个答案

小编典典

对于您的特定数据,您可以执行以下操作:

order by (case when cat_type = 'free' then id*1.0
               else 2*id - 7.5
          end)

这似乎 不可思议。如果您遇到更一般的问题,则应该问另一个问题,以更好地描述您真正想要完成的工作。

2021-05-16