如何删除MYSQL中除2个特定项目之外的所有项目

时间:2013-03-31 03:08:15

标签: mysql

我正在尝试从mysql.user中删除所有用户 除了用户“1”和“2”;

我运行了这个命令,但它也删除了用户“1”和“2”;

 mysql> delete from mysql.user where user!='1' or user!='2';

我也试过

 mysql> delete from mysql.user where (user!='1' or user!='2');

同样的结果,用户'1'和'2'正在被删除。

3 个答案:

答案 0 :(得分:10)

这应该可以使用NOT IN

DELETE FROM mysql.user where user NOT IN (1,2)

您的查询问题是OR - 它正在删除另一个,因为1不等于2,反之亦然。

您的查询适用于AND

delete from mysql.user where (user!='1' AND user!='2');

SQL Fiddle Demo

VS

SQL Fiddle Demo with Or

答案 1 :(得分:3)

您可以使用NOT IN

DELETE FROM mysql.user WHERE user NOT IN (1, 2)

两者都包含在内的原因很简单。 1 <> 22 <> 1

答案 2 :(得分:1)

从mysql.user中删除,其中用户不在('1','2')