0

我有一张带有房间列表的表格,每个房间都分配了一个房间号。我想删除最高的房间号:

DELETE FROM rooms WHERE roomNb = (SELECT max(roomNb) FROM rooms LIMIT 1)

我希望这可以工作,但是当我尝试在 PHP 中执行这个查询时,我得到了这个 mysqli_error:

string(64) "You can't specify target table 'rooms' for update in FROM clause" 
4

2 回答 2

2

尝试使用加入,

DELETE a
FROM   rooms a
       INNER JOIN (SELECT max(roomNb) maxroom FROM rooms) b
          ON a.roomNb = b.maxroom
于 2013-10-22T00:56:49.350 回答
2

我看不出使用子查询/连接的理由......为什么不在ORDER BY子句之后将行移出表的顶部?

DELETE FROM rooms ORDER BY roomNb DESC LIMIT 1
于 2013-10-22T01:14:58.533 回答