我有一個具有VARCHAR列的MySQL表。該列只包含數字,我希望能夠對它進行數字排序,例如100,101,1001。目前它將它們排序爲100,1001,101等。我聽說我可以簡單地修改表來添加collate屬性,所以它將按數字排序。當我鍵入「顯示排序規則」時,我看不到任何排序規則類型,它似乎是將數字列視爲varchar列。使用分類將varchar列作爲數字排序
所以我的問題是,我可以使用哪種排序方式,將數字排序此varchar列?
我有一個具有VARCHAR列的MySQL表。該列只包含數字,我希望能夠對它進行數字排序,例如100,101,1001。目前它將它們排序爲100,1001,101等。我聽說我可以簡單地修改表來添加collate屬性,所以它將按數字排序。當我鍵入「顯示排序規則」時,我看不到任何排序規則類型,它似乎是將數字列視爲varchar列。使用分類將varchar列作爲數字排序
所以我的問題是,我可以使用哪種排序方式,將數字排序此varchar列?
沒有內置整理這將比較數值的數值。
您可以開發自己的一個,但是,您將難以部署它共享主機和類似的東西。
如果你是不使用索引排序OK,你可能只是將其轉換爲整數:
SELECT *
FROM mytable
ORDER BY
CASE field REGEXP '^-?[0-9]$' THEN CAST(field AS SIGNED INTEGER) END