對SQL 中嵌入數字的字串列進行排序
在SQL 中,可以使用特定技術對包含數字的字串列進行排序。當 MySQL 等資料庫的自然排序演算法無法產生所需結果時,這會很有用。
要實現對包含數字的字串列進行自訂排序,可以採用多種方法:
使用CAST 和SUBSTRING:
SELECT *
FROM table
ORDER BY CAST(SUBSTRING(column,LOCATE(' ',column) 1) AS SIGNED)
此技術將列分為兩部分:空格之前的前綴和空格之後的數字。然後將該數字轉換為數字類型(在本例中為 SIGNED)進行比較。
使用SUBSTRING_INDEX:
ORDER BY SUBSTRING_INDEX(st, " ", 1) ASC, CAST(SUBSTRING_INDEX(st, " ", -1) AS SIGNED)
此方法使用SUBSTRING_INDEX 函數來提取前綴和數字組件。然後,它首先按前綴排序,然後按轉換後的數字排序。
注意: 如果列模式與「WORD_space_NUMBER」不同,則可能需要不同的方法。
範例:
範例資料 | ||
---|---|---|
自訂排序 | ||
a 1, a 12, a 2, a 3 | a 1, a 2、a 3、a 12 |
b 1、b 2、b 3、b 12
透過採用這些技術,可以以自訂方式對嵌入數字的字串列進行排序,確保結果符合特定的應用程式要求。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3