Mysql
 sql >> Datenbank >  >> RDS >> Mysql

löschen, wo id am größten ist

Erste Idee (unter vielen anderen, die genau dasselbe hatten):

DELETE FROM orders 
WHERE order_id = 
      ( SELECT MAX(order_id)
        FROM orders
      )

Leider beschwert sich MySQL mit:

> ERROR 1093 (HY000): You can't specify target table 'orders' for update in FROM
> clause

Zwei Möglichkeiten, den Fehler zu umgehen:

DELETE FROM orders 
WHERE order_id =
       ( SELECT maxo
         FROM  
           ( SELECT MAX(order_id) AS maxo
             FROM orders
           ) AS tmp
        )

oder:

DELETE FROM orders
ORDER BY order_id DESC
LIMIT 1