2016-11-07 49 views
-2

我有一個類別表,我已經使用了一個字段顯示順序。但問題是,默認情況下,此字段中將有零值。所以現在假設如果我在兩條記錄中設置了顯示順序1和2,那麼對於所有其他記錄,顯示順序中將有零值。如果默認值爲零,如何設置mysql查詢的升序

現在,如果我按顯示順序顯示記錄,那麼它首先顯示零值。實際上,我希望首先這些記錄應顯示在我已設置顯示順序(即大於零)的位置。所有的零值應該被視爲最後的記錄。

如何爲此編寫查詢?

回答

1

您可以在ORDER尋找案件表達BY子句

SELECT * 
FROM TableName 
ORDER BY CASE 
      WHEN ColName <> 0 THEN ColName 
      ELSE 9999 
      END 
1
Order by 
    case when `field` > 0 then `field` end ASC 
    , `field` 
    , other columns 

使用CASE表達式忽略默認值。

相關問題