2016-01-04 111 views
-4

我可以刪除表格中的所有行,但只留下1條記錄嗎? 可以像DELETE FROM table_name UNLESS id='5' 那樣自由說話,但id值是一個隨機數。 謝謝,我可以刪除所有行,但只保留一行嗎?

+1

要刪除除_arbitrary_行之外的所有行嗎?爲什麼?哪一個?你必須決定刪除哪一個。因此,想出一條規則......即使它是通過首先執行沒有「ORDER BY」的「SELECT ... LIMIT 1」來獲取不刪除行的細節。 –

+0

DELETE FROM table_name WHERE id!='number' – Webster

+0

DELETE FROM table_name WHERE id <> n;其中n是您選擇提名的任何整數&因爲n是整數不使用引號 –

回答

2

韋伯斯特是正確

DELETE FROM table_name WHERE id != 'number'; 

或者:

DELETE FROM table_name WHERE id NOT LIKE 'number'; 
+0

運算符'!='不適用於所有SQL數據庫,所以您應該告訴它們使用<> – Phiter

+0

感謝兄弟,它完美的工作 –

0

試試這個:如果你想只留下一個隨機行

DELETE FROM [your_table_name] WHERE id != [your_id]; 
1

和你有一個獨特的id,則:

delete t 
    from t cross join 
     (select id from t order by rand() limit 1 
     ) tt 
    where t.id <> tt.id; 
1
DELETE FROM `table` WHERE id NOT IN = (SELECT FLOOR(MAX(id) * RAND()) FROM `table`); 
相關問題