在 MySQL 中,'Order By' 子句根據指定列的值對資料進行排序。然而,在處理字母數字資料時,預設的排序方法會優先考慮第一個數字,從而導致排序不正確。
例如,如果我們有以下資料:
1 2 3 4 5 6 7 8 9 10 11 12
我們執行查詢:
select * from table order by xxxxx asc
結果將排序為如下所顯示:
1 10 11 12 2 3 4 5 6 7 8 9
這是因為順序是由第一個數字決定的,無論後續字元如何。
為了正確排序字母數字數據,我們可以使用各種技巧:
使用Bin 方式進行字母數字排序:
SELECT tbl_column, BIN(tbl_column) AS binray_not_needed_column FROM db_table ORDER BY binray_not_needed_column ASC , tbl_column ASC
自然排序:
SELECT alphanumeric, integer FROM sorting_test ORDER BY LENGTH(alphanumeric), alphanumeric
將與字母數字混合的數值排序:
SELECT version FROM version_sorting ORDER BY CAST(version AS UNSIGNED), version;
透過使用這些技巧,我們可以確保字母數字資料正確排序,保持項目所需的順序。
以上是如何在 MySQL 的 ORDER BY 子句中正確排序字母數字資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!