将 EXISTS 与 MySQL 一起使用
我有一个适用于所有其他数据库系统的简单查询,但在 MySQL 上失败:
UPDATE points p
SET p.userid = 5224
WHERE p.userid = 2532
AND NOT EXISTS (
SELECT 1
FROM points q
WHERE q.userid = 5224
AND q.game = p.game
)
我收到以下错误消息:
#1093 - You can't specify target table 'p' for update in FROM clause
有任何解决方法吗?
I have this simple query that works on all other database systems, but fails with MySQL:
UPDATE points p
SET p.userid = 5224
WHERE p.userid = 2532
AND NOT EXISTS (
SELECT 1
FROM points q
WHERE q.userid = 5224
AND q.game = p.game
)
I get the following error message:
#1093 - You can't specify target table 'p' for update in FROM clause
Is there any workaround?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不能在 UPDATE 子句中为主表添加别名。这应该有效:
You can't alias the main table in an UPDATE clause. This should work:
使用:
Use: