使用MySQL:使用内部联接更新包含值的字段

时间:2012-12-22 21:49:47

标签: mysql join

我有一个主表和一个索引表。两个表共享一个名为“L_Status”的公共主要字段。我想基于名为“status”的索引表中的引用将主表中的数据从“L_Status”值(整数)更新为“L_StatusLV”(可读文本值)。以下是我在PHPmyAdmin中输入的代码:

UPDATE markers.L_Status 
FROM markers
INNER JOIN STATUS ON markers.L_Status = status.L_Status
WHERE  markers.L_Status = status.L_StatusLV

PHPmyAdmin返回以下错误:

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在'FROM markers INNER JOIN STATUS ON markers.L_Status = status.L_Status WHERE ma'第2行附近使用正确的语法

有关sytax错误的任何建议吗?

1 个答案:

答案 0 :(得分:8)

MySQL的UPDATE JOIN语法与SQL Server(看起来像你的)不同:

UPDATE
  /* First join the tables */
  markers 
  INNER JOIN status ON markers.L_Status = status.L_Status
/* Then specify the new value in the SET clause */
SET markers.L_Status = status.L_StatusLV

但是,如上所述,当前值是整数。如果列markers.L_StatusINT列而不是CHAR/VARCHAR,因为我认为人类可读的列是,那么这不会起作用。

访问MySQL's UPDATE syntax reference以获取完整的语法详细信息。特别是 table_references