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子句中的情况。