我有一个主表和一个索引表。两个表共享一个名为“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错误的任何建议吗?
答案 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_Status
是INT
列而不是CHAR/VARCHAR
,因为我认为人类可读的列是,那么这不会起作用。
访问MySQL's UPDATE
syntax reference以获取完整的语法详细信息。特别是 table_references
。