我的数据库表中有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 ");
所以我不明白我错在哪里..
答案 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。
更改表格将解决您的问题。 :)