MySQL:按數字和最後的空值排序
在 SQL 查詢中,按數字欄位對資料進行排序非常簡單。然而,在這種情況下管理空值需要仔細考慮。在 MySQL 中,預設情況下,在使用 ASC 或 DESC 排序時,空值被視為 0,這可能會導致不期望的結果。
為了解決這個問題,MySQL 提供了一個非常規語法,將空值優先排序在最後。條款。在列名稱前放置減號 (-) 並反轉順序(ASC 到 DESC 或反之亦然),您可以有效地反轉 null 的排序行為。
例如,如果您希望對名為「position」的列按升序排列(空值除外),然後按降序排列與「id」的關係,您可以使用以下命令語法:
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
此排序將產生以下序列:
1, 2, 3, 4, NULL, NULL, NULL
本質上,此語法反轉「位置」列的排序,將空值放在最後,同時保持非空值的所需排序。
請記住,此語法未記錄在案,並且可能並非所有版本的 MySQL 都支援。此外,在查詢中實施任何高級排序技術之前,仔細查看文件始終是一個好習慣。
以上是如何在 MySQL 中按數字排序並將 NULL 放在最後?的詳細內容。更多資訊請關注PHP中文網其他相關文章!