Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

xóa nơi id là lớn nhất

Ý tưởng đầu tiên (trong số nhiều ý tưởng khác hoàn toàn giống nhau):

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

Thật không may, MySQL phàn nàn với:

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

Hai cách để bỏ qua lỗi:

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

hoặc:

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. Cách cài đặt MySQL 8 trên Windows

  2. Cơ sở dữ liệu MySQL sao lưu tự động trên máy chủ windows

  3. java.io.EOFException là gì, Thông báo:Không thể đọc phản hồi từ máy chủ. Dự kiến ​​đọc 4 byte, đọc 0 byte

  4. Thứ tự các trường trong mệnh đề WHERE có ảnh hưởng đến hiệu suất trong MySQL không?

  5. Làm cách nào để đặt thời gian chờ truy vấn ActiveRecord cho mysql?