3

我有一个主表和一个索引表。两个表共享一个名为“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 服务器版本相对应的手册以获取正确的语法,以便在第 2 行的“FROM 标记内部连接状态 ON 标记。L_Status = status.L_Status WHERE ma”附近使用

关于这里的语法错误有什么建议吗?

4

1 回答 1

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_Status是一INT列而不是CHAR/VARCHAR我假设人类可读的列是,这将不起作用。

访问MySQL 的UPDATE语法参考以获得完整的语法细节。特别是,table_references.

于 2012-12-22T21:56:33.037 回答