我的PHP代码中有一个简单的mysql select查询:
$result = mysql_query("SELECT text FROM example ORDER BY rank DESC");
while($row = mysql_fetch_array($result))
{
echo $row['text'] . "<br>";
}和这个MySql表:
text | rank
--------+--------
google | 245
--------+--------
yahoo | 32
--------+--------
bing | 12当我从查询中获得结果时,会显示如下内容:
yahoo
google
bing我想让谷歌走在前面。我猜雅虎排在第一位是因为它以"3“开头。
如何使查询按排名中数字的大小对结果进行排序?
谢谢..。
发布于 2011-11-05 01:01:13
我猜rank字段是某种字符串类型。如果将其设置为数值类型int,则它将按正确顺序排序
发布于 2011-11-05 01:06:38
当然,正确的解决方案是使用正确的数据类型。作为一种解决方法,您可以将数据即时转换为number:
SELECT text FROM example ORDER BY rank + 0 DESC或者:
SELECT text FROM example ORDER BY cast(rank as unsigned) DESC发布于 2011-11-05 01:00:31
您的SQL schema中rank的数据类型是什么?将其设置为数字类型。
https://stackoverflow.com/questions/8013016
复制相似问题