我有一个包含联系人详细信息的MySQL表,我需要将“PHONE1”列的重复标记为另一个名为“DUPLICATE”的标记列(忽略第一行,即原始行)。
我发现了一个SQL教程,其中有一个SQL查询示例,几乎完全符合我的要求:
https://www.sqlservertutorial.net/sql-server-basics/sql-server-update-join/
.
我修改了教程示例,可以通过以下查询正确地“选择”重复的行:
SELECT t1.ID, t1.`Contact Name`, t1.PHONE1
FROM new_leads_test2 AS t1
INNER JOIN new_leads_test2 AS t2
ON (t1.PHONE1 = t2.PHONE1
AND t1.ID > t2.ID)
这个“SELECT”查询可以100%工作,但是当我试图修改这个查询以实际更新行时(根据教程),我得到了一个SQL语法错误。以下是生成错误的查询:
UPDATE t1
SET t1.duplicate = t2.ID
FROM new_leads_test2 AS t1
INNER JOIN new_leads_test2 AS t2
ON (t1.PHONE1 = t2.PHONE1
AND t1.ID > t2.ID)
这会导致SQL错误:
#1064年的今天,您的SQL语法出现错误;查看与您的MySQL服务器版本对应的手册,以获取正确的语法
从新_引出_test2作为t1
内部连接新的_leads_test2 AS
t2
在t1上。PHONE1=t2在3号线
谁能帮我一下吗?