2014-03-25 68 views

回答

1

要刪除所有但從表中的最後10行:

delete from mytable 
where id < (select min(id) from (
    select id 
    from mytable 
    order by id desc 
    limit 10) x) 

SQLFiddle

+1

MySQL不支持'ALL(SELECT ... LIMIT x)'子查詢。這看起來是正確的(如果MySQL已經實現了這一點),但它不起作用。 –

+0

@ypercube是啊 - 修正(見sqlfiddle) – Bohemian

+0

無論如何我都會使用連接。在WHERE子句的子查詢中引用更新後的表並不高效,更重要的是不安全。 –