MySQL「排序依據」 - 正確排序字母數字資料
問題:
使用🎜>問題:
1 2 3 4 5 6 7 8 9 10 11 12
使用🎜>問題:
1 10 11 12 2 3 4 5 6 7 8 9
使用🎜>問題:
使用🎜>問題:用時MySQL 中使用字母數字資料的「ORDER BY”子句,排序通常會優先考慮第一個數字,導致序列不正確。例如,以下資料:
將排序為:SELECT * FROM table ORDER BY BIN(name) ASC, name ASC;
解:
有多種排序方法正確輸入字母數字數據,包括:SELECT * FROM table ORDER BY name DESC; -- Using a customized comparison function
此方法使用 BIN() 函數將字母數字資料轉換為二進位表示形式,然後用於排序。
SELECT * FROM table ORDER BY CAST(name AS UNSIGNED), name;
自然排序涉及逐字符比較值,同時考慮數字和字母。這可以使用自訂比較函數或依賴提供此類功能的外部程式庫來實現。
SELECT * FROM table ORDER BY LENGTH(name), name;
處理數字和字母數字值的混合時,可以使用CAST()函數將數字值轉換為無符號整數,然後將其用於排序。
4.基於長度的排序此方法根據每個值的長度對資料進行排序,較短的值先出現。 注意:具體使用方法可能會根據特定要求和 MySQL 環境中的可用資源而有所不同。以上是如何使用 ORDER BY 對 MySQL 中的字母數字資料進行正確排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!