我有一个具有VARCHAR列的MySQL表。该列仅包含数字,我希望能够以数字方式对其进行排序,即100,101,1001。目前它将它们分类为100,1001,1101等。我听说我可以简单地改变表格来添加整理属性它将按数字排序。当我输入“show collation”时,我看不到任何似乎用于将varchar列视为数字列的collation类型。
所以我的问题是,我可以使用哪种排序规则来对这个varchar列进行数字排序?
答案 0 :(得分:2)
答案 1 :(得分:0)
没有内置的排序规则可以将数值与数字进行比较。
您可以开发自己的,但是,您将很难将其部署在共享主机和类似的东西上。
如果您没有使用索引进行排序,则可以将其转换为整数:
SELECT *
FROM mytable
ORDER BY
CASE field REGEXP '^-?[0-9]$' THEN CAST(field AS SIGNED INTEGER) END