Mysql ORDER BY编号DESC

Ako*_*kos 4 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>";
  }
Run Code Online (Sandbox Code Playgroud)

和这个MySql表:

   text | rank
--------+--------
 google | 245
--------+--------
 yahoo  | 32
--------+--------
 bing   | 12
Run Code Online (Sandbox Code Playgroud)

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

yahoo 
google
bing
Run Code Online (Sandbox Code Playgroud)

我希望谷歌站在前面.我认为雅虎首先是因为它以"3"开头.

我如何通过排名中的数字大小来查询结果?

谢谢...

Nic*_*ndo 9

我猜这个rank字段是某种字符串类型.使它成为一种数字类型int,它将正确排序


Dim*_*lov 6

当然,正确的解决方案是使用正确的数据类型.作为一种解决方法,您可以动态地将数据转换为数字:

SELECT text FROM example ORDER BY rank + 0 DESC
Run Code Online (Sandbox Code Playgroud)

要么:

SELECT text FROM example ORDER BY cast(rank as unsigned) DESC
Run Code Online (Sandbox Code Playgroud)