如果默认值为零,如何按升序设置mysql查询

时间:2016-11-07 07:30:30

标签: mysql

我有一个类别表,其中我使用了一个字段显示顺序。但问题是默认情况下该字段中的值为零。所以现在假设我在两个记录中设置了显示顺序1和2,那么对于所有其他记录,显示顺序中将显示零值。

现在,如果我按照显示顺序显示记录,那么它首先显示零值。实际上我想要首先显示那些我已设置显示顺序(即大于零)的记录。应将所有零值视为最后记录。

如何为此编写查询?

2 个答案:

答案 0 :(得分:1)

您可以在ORDER BY子句中查找案例表达

SELECT * 
FROM TableName  
ORDER BY CASE 
             WHEN ColName <> 0 THEN ColName 
             ELSE 9999
          END   

答案 1 :(得分:1)

Order by 
    case when `field` > 0 then `field` end ASC
  ,  `field` 
  , other columns

使用案例表达式忽略该默认值。