Php Mysql按数字顺序描述
我的PHP代码中有一个简单的mysql select查询:Php Mysql按数字顺序描述,php,mysql,select,numbers,sql-order-by,Php,Mysql,Select,Numbers,Sql Order By,我的PHP代码中有一个简单的mysql select查询: $result = mysql_query("SELECT text FROM example ORDER BY rank DESC"); while($row = mysql_fetch_array($result)) { echo $row['text'] . "<br>"; } 当我从查询中获得结果时,会显示如下内容: yahoo google bing 我希望谷歌能走在前面。我猜雅虎排在第一位,因为
$result = mysql_query("SELECT text FROM example ORDER BY rank DESC");
while($row = mysql_fetch_array($result))
{
echo $row['text'] . "<br>";
}
当我从查询中获得结果时,会显示如下内容:
yahoo
google
bing
我希望谷歌能走在前面。我猜雅虎排在第一位,因为它以“3”开头
如何使查询按排名中数字的大小对结果排序
谢谢…试试这个:
$result = mysql_query("SELECT * FROM example ORDER BY rank DESC");
while($row = mysql_fetch_array($result))
{
echo $row['text'] . " ". $row['rank'] ."<br>";
}
$result=mysql\u查询(“按等级描述从示例顺序中选择*);
while($row=mysql\u fetch\u数组($result))
{
回显$row['text']。“.$row['rank']。”
”;
}
查看列组的排序是否正确。在SQL模式中,
rank
的数据类型是什么?将其设置为数字类型。我猜rank
字段是某种字符串类型。将其设置为数字类型int
,它将正确排序正确的解决方案当然是使用正确的数据类型。作为一种解决方法,您可以动态地将数据转换为数字:
SELECT text FROM example ORDER BY rank + 0 DESC
或:
$result=mysql\u查询(“按'rank`DESC'排序从'example`中选择*);
while($row=mysql\u fetch\u数组($result))
{
echo$row['text']。“
”;
}
谢谢。。。我真傻。忘了这么做:P会接受答案:)没问题。不确定在切换列类型时,是否会在维护rank
数据时遇到问题。如果你只有这3条记录,那就什么都不是了,但是如果你有很多记录,你可能想备份数据,如果数据出错,你可以运行一个脚本,转换所有的值,然后重新插入它们。
SELECT text FROM example ORDER BY rank + 0 DESC
SELECT text FROM example ORDER BY cast(rank as unsigned) DESC
$result = mysql_query("SELECT * FROM `example` ORDER BY `rank` DESC");
while($row = mysql_fetch_array($result))
{
echo $row['text'] ."<br>";
}