无法在mysql中访问/读取索引

时间:2012-07-01 17:58:52

标签: php mysql indexing

所以这是罪魁祸首

mysql_query("UPDATE coordrating SET submissions = '2' WHERE rating = 2");

现在这个工作正常,除非我尝试使用索引(这是我的表的索引)值。 所以这不起作用:

mysql_query("UPDATE coordrating SET index = '2' WHERE rating = 2");

mysql_query("UPDATE coordrating SET submissions = '2' WHERE index = 2");

这是我数据库结构的截图

http://imageshack.us/photo/my-images/694/problemmysql.png/

我完全不知所措。

3 个答案:

答案 0 :(得分:2)

这些查询不起作用,因为indexreserved word。您可以使用反引号来引用该名称,以告诉MySQL它应该被视为名称而不是保留字:

mysql_query("UPDATE coordrating SET `index` = '2' WHERE rating = 2");

mysql_query("UPDATE coordrating SET submissions = '2' WHERE `index` = 2");

答案 1 :(得分:1)

尝试这种方式:

UPDATE `coordrating` SET `index` = '2' WHERE `rating` = 2

反引号用于分隔表或字段名称,因为有时table或fieldname可以匹配MySQL运算符。

答案 2 :(得分:0)

您的“索引”列(最佳做法是使用 id 作为用作主键的列的名称),如屏幕截图中所示,是pimary键。 主键的一个成本是唯一,因此您可能会有2行具有“rating = 2”,因此您的查询将因唯一约束而失败。< / p>

另一个最佳做法是避免更改主键值,使用另一列。