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%'

由于某种原因,我收到语法错误:



虽然不知道。
如果我将updateset替换为select,则效果很好。

最佳答案

错误1064是MySQL语法错误。正确的MySQL语法是:

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放在UPDATE子句中。
  • 表别名使查询更易于编写和阅读。
  • 我猜enabledactive确实是数字值。如果是这样,请勿使用单引号。
  • 10-04 15:52