2012-04-18 112 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)