MySQL更新查询中的“字段列表”错误中的未知列

试图执行此更新查询时,我不断收到MySQL错误#1054:

UPDATE MASTER_USER_PROFILE, TRAN_USER_BRANCH SET MASTER_USER_PROFILE.fellow=`y` WHERE MASTER_USER_PROFILE.USER_ID = TRAN_USER_BRANCH.USER_ID AND TRAN_USER_BRANCH.BRANCH_ID = 17 

这可能是一些语法错误,但我已经尝试使用内部连接,而不是其他的改变,但我不断收到相同的消息:

 Unknown column 'y' in 'field list' 

尝试使用“y”的不同引号作为标识符引号字符是反引号(“`”)。 否则MySQL会“认为”你指向一个名为“y”的列。

另请参阅MySQL 5文档

用单引号括起任何要传递给mysql服务器的string; 例如:

 $name = "my name" $query = " INSERT INTO mytable VALUES ( 1 , '$name') " 

请注意,尽pipe查询包含在双引号之间,但您必须将任何string括在单引号中。

你可以检查你所选的引号(对于值,string等使用双/单引号,对列名使用反引号)。

既然你只想更新表master_user_profile我build议一个嵌套查询:

 UPDATE master_user_profile SET master_user_profile.fellow = 'y' WHERE master_user_profile.user_id IN ( SELECT tran_user_branch.user_id FROM tran_user_branch WHERE tran_user_branch.branch_id = 17); 

就我而言,这是由于列名末尾的一个看不见的尾部空格造成的。 只要检查你是否真的使用“Y”或“Y”。

像thi这样的查询也会导致错误

 select table1.id from table2 

在列select中指定表并且不包含在from子句中的情况。