如何在mysql中依次显示数字

时间:2015-09-11 15:45:33

标签: mysql

我的数据库表中有4列,当我搜索国家时显示id,号码,城市,国家的名称我显示该国家的所有首都但是问题是它显示非顺序序列

1   lahore    pakistan
10  karachi   pakistan
2   peshawar  pakistan

我尝试按顺序编写y号,但这里失败的是mu查询

$mysql= mysql_query("SELECT * FROM `country` WHERE country ='$name' ORDER BY number ASC ");

所以我不明白我错在哪里..

2 个答案:

答案 0 :(得分:1)

原因是你的号码不是真正的号码。它是一个字符串。所以在" order" 10在1之后。

您需要将字段设置为数字,或者在拉动时需要转换该值。

CONVERT的语法:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

您应该能够在ORDER语句的位置添加转换,如下所示:

$mysql= mysql_query("SELECT * FROM `country` WHERE country ='$name' ORDER BY CONVERT ( numeric(10) , number) ASC ");

虽然这将起作用,但所有......对您的问题更好,更正确的解决方案是使用正确的数据类型。也就是说,将您的字段转换为表格中的数字类型。然后你不必在以后写这样的东西。

答案 1 :(得分:0)

您的号码字段似乎是字符串类型(varchar)。使用数据类型为整数更改表的数字字段。并尝试相同的查询。 在字符串10中,在2之前,因此您得到的结果为1 10 2。

更改表格将解决您的问题。 :)