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

AME*_*AME 2 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
Run Code Online (Sandbox Code Playgroud)

PHPmyAdmin返回以下错误:

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

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

Mic*_*ski 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
Run Code Online (Sandbox Code Playgroud)

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

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