如何按升序获取记录
我的数据是
101
102
w
200
11
NO
131
2
XYZ
而且我只想按升序返回数字。
数据类型为
varchar
我想写查询为:
SELECT rno FROM ml_entry
WHERE (rno NOT LIKE '%[a-z]%')
ORDER BY rno
上面的SQL创建以下输出:
101
102
11
131
154
2
但这是我想要的输出:
2
11
101
102
131
154
有什么建议吗?
最佳答案
我认为您应该执行以下操作:
SELECT rno, convert(rno, UNSIGNED INTEGER) as num
FROM ml_entry WHERE (rno NOT LIKE '%[a-z]%') ORDER BY num ASC
由于
rno
是varchar,因此您的排序将是词汇顺序。您需要将varchar转换为整数,然后对其进行排序。这是demo。
关于mysql - 如何仅按升序返回数值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34680990/