在MySQL中使用EXISTS [英] Using EXISTS with MySQL

查看:128
本文介绍了在MySQL中使用EXISTS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个适用于所有其他数据库系统的简单查询,但是对于MySQL失败:

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
)

我收到以下错误消息:

#1093 - You can't specify target table 'p' for update in FROM clause

有什么解决方法吗?

推荐答案

您不能在UPDATE子句中为主表添加别名.这应该起作用:

You can't alias the main table in an UPDATE clause. This should work:

UPDATE points 
SET userid = 5224 
WHERE userid = 2532 
AND NOT EXISTS (
    SELECT 1
    FROM points q
    WHERE q.userid = 5224
    AND q.game = points.game
)

这篇关于在MySQL中使用EXISTS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆