我有这段代码:
$ 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等等。请尽快帮助。
由于
答案 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;