MySQL:使用ORDER BY子句的查询不返回任何内容

时间:2014-06-17 18:43:51

标签: php mysql sql

在我的 MySQL 数据库中,我有一个名为pages的表,它包含多个列,其中两列是order (int)tab (int)和{{ 1}}。当我这样调用查询时

name (text)

它执行没有问题,返回具有正确选项卡标签的所有行。我遇到的问题是当我使用"SELECT * FROM pages WHERE tab = '$tid'"

执行时
ORDER BY

我从查询中返回false。也没有错误。 当我将列"SELECT * FROM pages WHERE tab = '$tid' ORDER BY order ASC" 放在单引号order中时,查询的工作方式与之前相同,但不应用任何订单。

无论我尝试排序哪一列,为什么我都无法返回?如何使我的查询正确排序到列?

2 个答案:

答案 0 :(得分:5)

ORDER是MySQL中的保留字,因此如果要将其用作标识符,则应使用反引号`对其进行转义:

SELECT * FROM pages WHERE tab = '$tid' ORDER BY `order`

答案 1 :(得分:0)

您收到的错误并未消失。请尝试以下方法:

select * from pages order by `order`;

ORDER是保留字。如果您没有正确引用它,查询将无法运行。