2012-04-18 109 views
1

我在MySQL查詢時遇到了一些麻煩。我在一個名爲「ID」的表中有一個字段,我想要一個查詢刪除該表中的所有行,除非他們有一個特定的ID,我希望更多的能夠在查詢中定義多個ID。MySQL刪除查詢

任何想法?

回答

2
DELETE 
FROM yourTable 
WHERE yourID NOT IN (1,2,3,4) -- place your list here 

你不想列出您的ID或,你可以使用將包含ID列表的子查詢你想保留:

DELETE 
FROM yourTable 
WHERE yourID NOT IN (SELECT * FROM yourTable WHERE ...) 
3
DELETE FROM your_table 
WHERE id NOT IN (1,2,3) 
1
delete from your_table where id not in (1, 2, 4) 
1

你應該嘗試此查詢:

DELETE FROM tablename WHERE ID NOT IN ('1','2','3'); 
1

這應該做的工作

delete from TABLE_NAME where id not in (1,2,3,4,5,6) 

(1,2,3,4,5 ...)是您要保存的ID的列表。

1

您還可以使用一些額外的條件使用:

delete from your_table_name where id not in (select id from your_table_name where necessary=false)