在SQL 中對嵌入數字的字串列進行排序
在SQL 中,可以使用特定技術對包含數字的字串列進行排序。當 MySQL 等資料庫的自然排序演算法無法產生所需結果時,這會很有用。
要實現對包含數字的字串列進行自訂排序,可以採用多種方法:
使用CAST 和SUBSTRING:
<code class="sql">SELECT * FROM table ORDER BY CAST(SUBSTRING(column,LOCATE(' ',column)+1) AS SIGNED)</code>
此技術將列分為兩部分:空格之前的前綴和空格之後的數字。然後將該數字轉換為數字類型(在本例中為 SIGNED)進行比較。
使用 SUBSTRING_INDEX:
<code class="sql">ORDER BY SUBSTRING_INDEX(st, " ", 1) ASC, CAST(SUBSTRING_INDEX(st, " ", -1) AS SIGNED)</code>
此方法使用 SUBSTRING_INDEX 函數來提取前綴和數字組件。然後,它首先按前綴排序,然後按轉換後的數字排序。
注意:如果列模式與「WORD_space_NUMBER」不同,則可能需要不同的方法。
範例:
Sample Data | Natural Sorting | Custom Sorting |
---|---|---|
a 1, a 12, a 6, a 11 | a 1, a 12, a 2, a 3 | a 1, a 2, a 3, a 12 |
b 1, b 12, b 6, b 11 | b 1, b 12, b 2, b 3 | b 1, b 2, b 3, b 12 |
透過採用這些技術,可以以自訂方式對嵌入數字的字串列進行排序,確保結果符合特定的應用程式要求。
以上是如何在 SQL 中對嵌入數字的字串列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!