MySQL Update查询中"字段列表"错误中的未知列

me_*_*ere 114 mysql sql mysql-error-1054

尝试执行此更新查询时,我不断收到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
Run Code Online (Sandbox Code Playgroud)

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

Unknown column 'y' in 'field list' 
Run Code Online (Sandbox Code Playgroud)

tue*_*ist 149

尝试对"y"使用不同的引号,因为标识符引号字符是反引号("`").否则MySQL"认为"你指向一个名为"y"的列.

另请参见MySQL 5文档


小智 42

在单引号内包含要传递给mysql服务器的任何字符串; 例如:

$name = "my name"
$query = " INSERT INTO mytable VALUES ( 1 , '$name') "
Run Code Online (Sandbox Code Playgroud)

请注意,尽管查询包含在双引号之间,但您必须将任何字符串括在单引号中.

  • 我知道这是一篇旧帖子,但您能回答为什么必须加上引号吗? (2认同)

小智 16

您可以检查您的引号选择(对值,字符串等使用双引号/单引号和列名称的反引号).

由于您只想更新表,master_user_profile我建议使用嵌套查询:

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);
Run Code Online (Sandbox Code Playgroud)


Dea*_*hiu 7

只是分享我在这方面的经验。我也遇到了同样的问题。插入或更新语句是正确的。我还检查了编码。该列确实存在。然后!我发现我正在引用触发器中的列。您还应该检查触发器,看看是否有任何脚本引用您遇到问题的列。