1

我有以下查询:

$query = "SELECT - AS -
         FROM -
         WHERE ID = '".$id."'
         ORDER BY 'PRIMARY' DESC
         LIMIT ".$start.", ".$limit."";

但是,由于某种原因,查询总是按升序返回,即使我已经告诉它按降序排序。

我不确定为什么会这样。当我通过 phpMyAdmin 进行查询时,它会正确返回,但 PHP 查询未按降序列出结果。

注意:查询中的 - 是我截取的数据库中的名称。它们在实际查询中填充了正确的名称。

4

4 回答 4

2

您的查询实际上根本没有排序,
您按常量字符串排序PRIMARY,所有行都将相等。

于 2012-05-02T20:16:40.800 回答
2

您正在按一个常数值'PRIMARY'(始终相同)对结果进行排序 您想按列排序,因此您需要指定列,例如

ORDER BY column1

如果列名是column1 你不能像这样使用PRIMARY,只有当它是一个列名时。在这种情况下,你会写

ORDER BY `PRIMARY`

asPRIMARY是 mysql 关键字(用于主键用途)

请注意

`PRIMARY`

不同于

'PRIMARY'

这是一个常数值

于 2012-05-02T20:17:25.037 回答
0

在附近使用反引号而不是单引号PRIMARY

$query = "SELECT - AS -
         FROM -
         WHERE ID = '".$id."'
         ORDER BY `PRIMARY` DESC
         LIMIT ".$start.", ".$limit."";
于 2012-05-02T20:16:01.880 回答
-1

您是否尝试过回显查询以确保它与您放入 phpmyadmin 的查询相匹配

于 2012-05-02T20:16:55.933 回答