我的表:如何刪除超過50個計數的所有行?
_id | state | timeStamp
我想選擇所有的狀態= 0,以便按時間戳結果行。我想要刪除所有通過特定限制的項目,比如50行。
*從本質上講,我不希望這是超過50行與狀態= 0
我怎樣才能做到這一點?我試着寫一個,但我發現有點失落......
DELETE FROM表WHERE(狀態= 0)令按時間戳
我的表:如何刪除超過50個計數的所有行?
_id | state | timeStamp
我想選擇所有的狀態= 0,以便按時間戳結果行。我想要刪除所有通過特定限制的項目,比如50行。
*從本質上講,我不希望這是超過50行與狀態= 0
我怎樣才能做到這一點?我試着寫一個,但我發現有點失落......
DELETE FROM表WHERE(狀態= 0)令按時間戳
使用NOT IN
語句子查詢:
DELETE FROM table WHERE state = 0 AND _id NOT IN(SELECT _id FROM table WHERE state = 0 ORDER BY timeStamp LIMIT 50);
它是什麼選擇所有行state = 0
,然後把已經state = 0
所有訂貨時時間戳
是的,當我嘗試時,我基本上迷失在子查詢中......所以我明白你在那裏有什麼,但感覺就像重複了第一個和最後一個SELECT命令。這意味着什麼? – Jona
對不起,減號錯誤,我在尋找正確的查詢。給我一分鐘:) –
@尼克拉斯不應該使用NOT IN而不是IN? –
你可以找到時間戳是做什麼用的第50行第50列,然後做刪除statem對於狀態爲0且時間戳比您找到的時間戳更早(或更新,以適用於此處)的行爲例。
感謝您的方法的想法,我認爲它使完整的感覺。我仍然不確定如何編寫複雜的DELETE查詢。基本上希望在這個論壇的幫助下,我可以通過一個查詢來了解它的工作原理。 :) – Jona
所以你想截斷你的表50行? –
我不確定我明白你的意思是什麼意思?我假設行是對的?本質上,我不希望有超過50行的狀態= 0 – Jona
對不起,是的行。 –