如何仅按升序返回数值

时间:2016-01-08 15:53:15

标签: mysql

如何按升序录制

我的数据是

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

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为你应该这样做:

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