首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql ORDER BY numbers

Mysql ORDER BY numbers
EN

Stack Overflow用户
提问于 2011-11-05 00:57:57
回答 5查看 17.8K关注 0票数 4

我的PHP代码中有一个简单的mysql select查询:

代码语言:javascript
复制
$result = mysql_query("SELECT text FROM example ORDER BY rank DESC");
while($row = mysql_fetch_array($result))
  {
  echo $row['text'] . "<br>";
  }

和这个MySql表:

代码语言:javascript
复制
   text | rank
--------+--------
 google | 245
--------+--------
 yahoo  | 32
--------+--------
 bing   | 12

当我从查询中获得结果时,会显示如下内容:

代码语言:javascript
复制
yahoo 
google
bing

我想让谷歌走在前面。我猜雅虎排在第一位是因为它以"3“开头。

如何使查询按排名中数字的大小对结果进行排序?

谢谢..。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-11-05 01:01:13

我猜rank字段是某种字符串类型。如果将其设置为数值类型int,则它将按正确顺序排序

票数 9
EN

Stack Overflow用户

发布于 2011-11-05 01:06:38

当然,正确的解决方案是使用正确的数据类型。作为一种解决方法,您可以将数据即时转换为number:

代码语言:javascript
复制
SELECT text FROM example ORDER BY rank + 0 DESC

或者:

代码语言:javascript
复制
SELECT text FROM example ORDER BY cast(rank as unsigned) DESC
票数 7
EN

Stack Overflow用户

发布于 2011-11-05 01:00:31

您的SQL schema中rank的数据类型是什么?将其设置为数字类型。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8013016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档