【问题标题】:MySQL, how to sort according to categories?MySQL,如何按类别排序?
【发布时间】:2015-07-05 20:50:28
【问题描述】:

我知道如何select 并分别对一个类别进行排序,以及如何select 并根据ASCDESC 对所有类别进行排序。我的问题是如何select 所有类别并以例如第五类排在第一位而其他类别排在其后的方式对它们进行排序?

【问题讨论】:

  • ORDER BY 子句中使用CASE
  • 什么是“第五类”?你有它的名字还是只是第 5 位?
  • 您必须提供一些示例数据。
  • 是的,能给我一些代码示例吗?
  • category有id、name等……第五位就是例子,简单。

标签: php mysql sql sorting


【解决方案1】:

假设第五个类别只是意味着你想要一个特定的类别,比如Category-Name,你可以使用CASE

SELECT t.*
FROM dbo.Tablename t
ORDER BY CASE WHEN t.Category = 'Category-Name' THEN 0 ELSE 1 END ASC,
         Category ASC

【讨论】:

    【解决方案2】:

    你可以使用field()函数

    select *
    from categories
    order by field(id,5) desc,id
    

    select *
    from categories
    order by id= 5 desc,id
    

    【讨论】:

    • 感谢您的宝贵时间和回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 2021-09-02
    • 2018-05-18
    • 1970-01-01
    相关资源
    最近更新 更多