MySQL:將 VARCHAR 欄位作為整數排序
資料庫有時會將數字儲存為字串 (VARCHAR),這通常是由於遺留系統或外部依賴性造成的。 使用標準字串比較時,這可能會導致錯誤的排序結果。 以下是如何在 MySQL 中正確排序這些字串格式的數字:
最優方案:資料型別轉換
最好的方法是將表格列的資料類型改為整數(INT、BIGINT 等)。這可確保正確的數字排序並避免將來出現問題。
替代方法(當資料類型變更不可行時):
CAST()
函數將 VARCHAR 值明確轉換為整數:<code class="language-sql">SELECT col FROM yourtable ORDER BY CAST(col AS UNSIGNED);</code>
這會強制 MySQL 在排序過程中以數字方式處理值。 UNSIGNED
防止負數解釋。
<code class="language-sql">SELECT col FROM yourtable ORDER BY col + 0;</code>
MySQL 會嘗試將字串解釋為數字進行加法運算,從而觸發隱式轉換。
String Value | Integer Value |
---|---|
'1' | 1 |
'ABC' | 0 |
'123miles' | 123 |
'3' | 0 |
非數字字元將導致 0 值。 前導非數字字元將導致整個轉換失敗。
以上是如何在 MySQL 中將 VARCHAR 數字作為整數排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!