如何在sql中按顺序获取数字?

时间:2011-08-06 14:06:14

标签: php mysql sql

我有这段代码:

$ sql =“SELECT * FROM alexa WHERE alexapr BETWEEN 01 AND 20 ORDER by alexapr ASC LIMIT 20”;

给出了这个结果:

google.com 1
qq.com 10
msn.com 11
yahoo.co.jp 12
taobao.com 14
google.co.in 15
sina.com.cn 16
amazon.com 17
google.de 17
wordpress.com 18
linkedin.com 18
facebook.com 2
youtube.com 3
yahoo.com 4
blogspot.com 5
baidu.com 6
wikipedia.org 7
live.com 8
twitter.com 9

它显示Alexa排名最高的网站,如何按顺序获得数字1,2,3,4,5等为什么它在1之后显示10,11,12?我想要1,2,3,4,5等等。请尽快帮助。

由于

3 个答案:

答案 0 :(得分:4)

将alexapr列类型更改为整数。

ALTER TABLE alexa CHANGE alexapr alexapr INTEGER如果您使用的是mysql

答案 1 :(得分:1)

将alexapr列视为字符类型,尝试将值转换为数字数据类型。

答案 2 :(得分:1)

这看起来像你的'alexapr'列是一个字符串,而不是整数,这就是它在问题中显示的方法中排序的原因。

尝试:  CAST(alexapr AS INT)CONVERT(INT, alexapr)

更新:由于看起来你正在使用MySQL,由于limit子句,上面的T-SQL将无法正常工作。尝试:ALTER TABLE alexa CHANGE alexapr alexapr INT;