我对MySQL感到困惑。我正在查询一个名为index
的主键字段的表格。MySQL不查询主键
SELECT * FROM content WHERE index = 7
很简单吧?我不断收到语法错误,大约在index = 7
,错误号1064(无法粘贴错误,因为它在iPhone模拟器上)。
领域index
包含7这是PRIMARY_KEY
和类型int(6)
的数据库工作正常查询其他领域等。
在查询此字段之前,我需要确保是否存在需要设置的设置?
非常感谢。
我对MySQL感到困惑。我正在查询一个名为index
的主键字段的表格。MySQL不查询主键
SELECT * FROM content WHERE index = 7
很简单吧?我不断收到语法错误,大约在index = 7
,错误号1064(无法粘贴错误,因为它在iPhone模拟器上)。
领域index
包含7这是PRIMARY_KEY
和类型int(6)
的数据库工作正常查询其他领域等。
在查询此字段之前,我需要确保是否存在需要设置的设置?
非常感谢。
指数是一个保留字,用
Select * from content
where `index` = 7
另一种合适的解决方法(为一个柱标识符是一个保留字)是表名或表别名来限定柱。我的首选是始终使用表别名。在这个例子中,我们给表content
的c
一个别名,然后我们可以在查询中引用:
SELECT c.* FROM content c WHERE c.index = 7
在这个例子中,反引号不需要绕柱的名字,因为当它是合格的有表别名,MySQL认为它是一个标识符;保留字不能用表名限定。
使用表别名是我们在更复杂的语句中使用的模式,它引用多个表和/或多次引用同一个表。没有什么能阻止我们用简单的语句来使用相同的模式。
和周围标识符反引号总是被允许的,即使需要他们:
SELECT `c`.* FROM `content` `c` WHERE `c`.`index` = 7
最有可能是因为'index'读为关键字! – mithilatw 2012-08-09 11:07:06