Mysql
 sql >> Baza danych >  >> RDS >> Mysql

usuń gdzie id jest największy

Pierwszy pomysł (wśród wielu innych, które miały dokładnie to samo):

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

Niestety MySQL skarży się na:

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

Dwa sposoby na ominięcie błędu:

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

lub:

DELETE FROM orders
ORDER BY order_id DESC
LIMIT 1 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować MySQL Workbench na Ubuntu?

  2. WYBIERANIE z wieloma warunkami WHERE w tej samej kolumnie

  3. Jak ponowić transakcję po zakleszczeniu za pomocą Doctrine?

  4. Automatyzacja wdrażania bazy danych MySQL

  5. jak uzyskać całkowitą liczbę wierszy za pomocą mysqli