Mysql
 sql >> база данни >  >> RDS >> Mysql

изтрийте мястото, където идентификаторът е най-голям

Първа идея (сред много други, които имат абсолютно същото):

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

За съжаление MySQL се оплаква с:

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

Два начина за заобикаляне на грешката:

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

или:

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. кое е по-добре една голяма заявка или няколко малки заявки?

  2. Намерете най-добрите възможни начини за 2-ра най-висока заплата

  3. Безопасно ли е да съхранявате дати като низ в mysql?

  4. Пълнотекстово търсене в MySQL с utf8 (персийски/арабски)

  5. Ляво присъединяване или избор от множество таблици с помощта на запетая (,)