1

下面的查询让我失望。这是一个简单的查询,但在 where 子句中给出了错误。

我试图从我的订单表中得到延迟的订单。

SELECT * FROM orders where delayed='Y'

这里有什么问题?

4

4 回答 4

6

DELAYED是mysql中的保留字。将其括在反引号(`)中,同时将其用作列名

试试下面:

SELECT * FROM orders WHERE `delayed`='Y'
于 2012-04-20T23:37:40.160 回答
2

DELAYED是 MySQL 关键字(如 中INSERT DELAYED),因此您需要将“延迟”列包含在反引号中:

SELECT * FROM orders where `delayed`='Y'

请注意,这些是反引号,而不是撇号。

于 2012-04-20T23:37:37.790 回答
1

尝试这个:

SELECT * FROM orders where `delayed`='Y'
于 2012-04-20T23:38:22.397 回答
1

尽管反引号选项有效,并且也适用于带有空格的字段名称,但在我看来,最好尽可能避免使用此类表。不是因为反引号本身,它们是无害的,而是因为约定。保留字不打算用作标识符,因为......它们是保留的!

干杯!

于 2012-04-20T23:44:50.990 回答