2012-10-31 30 views
3

我需要刪除數據庫中的所有日期,除了前兩個選擇日期:從數據庫中刪除所有選定行除了前兩個

SELECT DateColumn 
FROM Table 
GROUP BY date(DateColumn) 
ORDER BY DateColumn DESC 

我想在一個查詢刪除除前兩個所有日期。

+0

如果多行'Table'有'DateColumn'將​​它列入到前兩個'GROUP'ed結果行的值,超過兩行將會被刪除。那是你要的嗎? – 2012-10-31 10:34:14

回答

4
delete from table where DateColumn not in(
SELECT DateColumn 
FROM Table 
GROUP BY date(DateColumn) 
ORDER BY DateColumn DESC LIMIT 2) 
3
DELETE FROM Table 
     WHERE DateColumn NOT IN (SELECT DateColumn 
           FROM Table 
          GROUP BY date(DateColumn) 
          ORDER BY DateColumn DESC 
           LIMIT 2); 
+0

如果有重複日期,會發生什麼情況? – podiluska

+0

重複日期是'GROUP'ed。 – 2012-10-31 09:24:53

相關問題