2012-07-01 56 views
1

沒有訪問/讀取的索引所以這是罪魁禍首可以在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/

的截圖我完全莫名其妙。

回答

0

試試這個方法:

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

反引號用於分隔表或字段名稱,因爲有時表或字段名可以搭配MySQL的運營商。

+2

非常感謝你 –

2

這些查詢不起作用,因爲indexreserved word。您可以使用反引號告訴MySQL的,它應該被視爲一個名稱,而不是保留字引述名稱:

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

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

哦,上帝哦,非常感謝你 –

0

你的「指數」列(一個最好的做法是使用ID作爲列名用作主鍵),在屏幕截圖中可以看到,是pimary鍵。 主要密鑰將是唯一,所以很可能您將有2行具有「評級= 2」,因此您的查詢將因獨特約束而失敗。

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