如何在mysql查询中获取排序结果?

时间:2015-02-12 11:31:41

标签: php mysql sql subquery

我试图从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,同样所有剩余的结果应该被排序为两个{{ 1}}和一个free

知道如何使用查询完成此操作吗?

注意:最重要的是它应该分为两个免费和一个付费。不是ID。

感谢。

1 个答案:

答案 0 :(得分:2)

对于您的特定数据,您可以这样做:

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

这似乎非常奥术。如果你有一个更普遍的问题,你应该问另一个问题,更好地描述你真正想要完成的事情。