尝试使用同一个表

时间:2018-01-07 18:52:18

标签: php mysql sql mysqli

UPDATE seasons SET good=good+1 WHERE id = (SELECT id FROM seasons ORDER BY id DESC LIMIT 1)

当我运行此命令时,我得到错误:“#1093 - 表'season'被指定两次,既作为'UPDATE'的目标,又作为单独的数据来源”。

1 个答案:

答案 0 :(得分:2)

这是MySQL的限制。

一种方法是使用JOIN。但是,为此,最好使用LIMITORDER BY

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

这确实假设id在表中没有重复,但对于名为id的列来说,这似乎是一个合理的假设。