sql >> Databáze >  >> RDS >> Mysql

smazat, kde je id největší

První nápad (kromě mnoha dalších, které měly úplně to samé):

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

Bohužel si MySQL stěžuje na:

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

Dva způsoby, jak obejít chybu:

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

nebo:

DELETE FROM orders
ORDER BY order_id DESC
LIMIT 1 


  1. MySQL zkombinuje dva sloupce a přidá je do nového sloupce

  2. Jak se zbavit chyby MySQL „Připravený příkaz je třeba znovu připravit“

  3. MySQL:Najděte chybějící data mezi časovým obdobím

  4. Levé spojení nevrací všechny řádky