如何對最後帶有空值的MySQL 結果進行排序
當帶有數字列的MySQL 結果進行排序時,空值可能會出現問題,因為它們被視為零。這可能會導致意外的排序,即空值出現在非空值之前。
為了解決此問題,MySQL 提供了一種未記錄的語法,讓您可以將空值放在最後排序。這是透過在列名之前放置一個減號(-) 並將ASC 切換為DESC 來實現的:
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
此語法本質上反轉了位置DESC 排序,將空值放在最後,同時保持與非空值。
例如,如果您有以下資料:
NULL, NULL, NULL, 1, 2, 3, 4
使用標準ORDER BY position ASC, id DESC 語句將導致:
NULL, NULL, NULL, 1, 2, 3, 4
但是,使用-position DESC語法將產生所需的排序:
1, 2, 3, 4, NULL, NULL, NULL
此未記錄的語法提供了方便的確保空值在 MySQL 結果中排在最後的方法。需要注意的是,這不是標準的 SQL 功能,並且可能並非所有資料庫系統都支援。
以上是如何對最後帶有 NULL 值的 MySQL 結果進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!