2011-09-09 55 views
0

的CentOS 4或5,与MySQL 5.0.77:MySQL的坚持,字段不存在,然后告诉我,它确实存在

由鼠标器
mysql> UPDATE 
    -> `userTable` 
    -> INNER JOIN `anotherTable` 
    -> ON `userTable.userid`=`anotherTable.userid` 
    -> SET `userTable.someField`="Jimmy Page" 
    -> WHERE `userTable.someField`="Jim Morrison" 
    -> AND `anotherTable.date` < NOW(); 
ERROR 1054 (42S22): Unknown column 'userTable.someField' in 'field list' 
mysql> 
mysql> SELECT count(someField) FROM userTable; 
+---------------+ 
| count(someField) | 
+---------------+ 
|   5076 | 
+---------------+ 
1 row in set (0.00 sec) 

mysql> 

我没有进入someField和用户表到SELECT语句在终端中复制/粘贴,所以我知道这不是一个错字问题。这里可能是什么问题?

谢谢!

+0

它似乎是由反勾引起的。尝试删除它们,再试一次 – ajreal

回答

6

刻度线用于引用列和表名称。用引号中的小点,它不会将这看作是各部分之间的分隔符。添加一些额外的刻度线来纠正它。

UPDATE 
    `userTable` 
INNER JOIN `anotherTable` 
    ON `userTable`.`userid`=`anotherTable`.`userid` 
SET `userTable`.`someField`="Jimmy Page" 
WHERE `userTable`.`someField`="Jim Morrison" 
    AND `anotherTable`.`date` < NOW(); 
+1

或者使用任何后退勾号 – ajreal

+0

考虑到其中一个字段是'date',他们需要使用一些back tick。否则,你的权利。它确实有太多。 – rrehbein

+0

fyi日期不保留字mysql.it是使用保留关键字作为列或表名称时的设计问题 – ajreal

相关问题