Mysql 使用内部联接和where进行sql更新
出于某种原因,我得到了一个语法错误: 1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在第3行使用near“FROM newsreactions internal JOIN users ON newsreactions.memberId=users.id,其中u”的正确语法 但我想不出来。Mysql 使用内部联接和where进行sql更新,mysql,sql,sql-update,syntax-error,Mysql,Sql,Sql Update,Syntax Error,出于某种原因,我得到了一个语法错误: 1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在第3行使用near“FROM newsreactions internal JOIN users ON newsreactions.memberId=users.id,其中u”的正确语法 但我想不出来。 如果我用一个select替换update和set,它可以正常工作。错误1064是一个MySQL语法错误。正确的MySQL语法是: UPDATE newsreactions SE
如果我用一个
select
替换update
和set
,它可以正常工作。错误1064是一个MySQL语法错误。正确的MySQL语法是:
UPDATE newsreactions
SET newsreactions.enabled = '0'
FROM newsreactions
INNER JOIN users ON newsreactions.memberId = users.id
WHERE users.active = '0' AND users.comment LIKE '%spam%'
注:
进入JOIN
子句UPDATE
- 表别名使查询更易于编写和读取
- 我猜
和启用
实际上是数值。如果是,请不要使用单引号激活
- 错误1064是一个MySQL语法错误。正确的MySQL语法是:
UPDATE newsreactions
SET newsreactions.enabled = '0'
FROM newsreactions
INNER JOIN users ON newsreactions.memberId = users.id
WHERE users.active = '0' AND users.comment LIKE '%spam%'
注:
进入JOIN
子句UPDATE
- 表别名使查询更易于编写和读取
- 我猜
和启用
实际上是数值。如果是,请不要使用单引号激活
set
子句之前应该有join
子句,MySQL中不应该有from
子句:
UPDATE newsreactions nr INNER JOIN
users u
ON nr.memberId = u.id
SET nr.enabled = 0
WHERE u.active = 0 AND u.comment LIKE '%spam%';
join
子句应位于set
子句之前,MySQL中不应有from
子句:
UPDATE newsreactions nr INNER JOIN
users u
ON nr.memberId = u.id
SET nr.enabled = 0
WHERE u.active = 0 AND u.comment LIKE '%spam%';
用您正在使用的数据库标记您的问题。MySQL多表更新语句的语法在此处可用:用您正在使用的数据库标记您的问题。MySQL多表更新语句的语法在此处可用:Thx!我使用了这个问题的答案:我的问题与它有何不同?@PascalClaes:另一个问题涉及的是Microsoft SQL Server,而不是MySQL。这些是不同的DBMS,在SQL语法上有一些显著的差异。多表更新语法就是其中一个差异的示例。这是一个重要的原因,确定您正在使用(询问)的数据库。Thx!我使用了这个问题的答案:我的问题与它有何不同?@PascalClaes:另一个问题涉及的是Microsoft SQL Server,而不是MySQL。这些是不同的DBMS,在SQL语法上有一些显著的差异。多表更新语法就是其中一个差异的示例。这是确定您正在使用(询问)哪个数据库很重要的一个重要原因。