0

我对 MySQL 感到困惑。我正在查询一个主键字段名为index.

SELECT * FROM content WHERE index = 7

很简单吧?我不断收到语法错误index = 7,错误号 1064 左右(无法粘贴错误,因为它在 iPhone 模拟器上)。

该字段index包含一个 7。它是PRIMARY_KEY, 和 类型int(6)

数据库可以很好地查询其他字段等。

在查询此字段之前,是否需要确保设置到位?

非常感激。

4

3 回答 3

4
SELECT * FROM content WHERE `index` = 7

index是 MySQL 中的保留字。你必须用反引号来逃避它。看这里

于 2012-08-09T11:07:33.450 回答
2

另一种合适的解决方法(对于作为保留字的列标识符)是使用表名或表别名来限定列。我的偏好是始终使用表别名。在这个例子中,我们给表content一个别名c,然后我们可以在查询中引用它:

SELECT c.* FROM content c WHERE c.index = 7

在这个例子中,列名周围不需要反引号,因为当它用表别名限定时,MySQL 将其视为标识符;保留字不能用表名限定。

使用表别名是我们在更复杂的语句中使用的一种模式,它引用多个表和/或多次引用同一个表。没有什么能阻止我们对简单的语句使用相同的模式。

并且始终允许标识符周围的反引号,即使它们是必需的:

SELECT `c`.* FROM `content` `c` WHERE `c`.`index` = 7
于 2012-08-09T13:58:00.773 回答
1

索引是保留字,使用

Select * from content 
where `index` = 7
于 2012-08-09T11:08:10.417 回答