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


Cannot access/read index in mysql

所以这是罪魁祸首

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/

我完全不知所措。

试试这个方式:

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

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

这些查询不起作用,因为index是一个保留字。您可以使用反引号引用该名称,以告诉MySQL应将其视为名称而不是保留字:

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

您的"索引"列(一种最佳做法是使用 id 作为用作主键的列的名称),在您的屏幕截图中可见,是 pimary 键。主键的一个约束是唯一,因此很可能有 2 行具有"rating = 2",因此您的查询将由于唯一约束而失败。

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