尝试用同一个表中的值更新表

cgh8pdjw  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(256)
UPDATE seasons SET good=good+1 WHERE id = (SELECT id FROM seasons ORDER BY id DESC LIMIT 1)

当我运行这个命令时,我得到一个错误:

1093-表'seasons'指定了两次,既作为'update'的目标,又作为单独的数据源

xqkwcwgp

xqkwcwgp1#

这是mysql的限制。
一种方法是使用 JOIN . 但是,对于这一点,最好使用 LIMIT 以及 ORDER BY :

UPDATE seasons s 
    SET s.good = s.good + 1 
    ORDER BY id DESC
    LIMIT 1;

这是假设 id 表中没有重复,但对于名为 id .

相关问题