9

我正在尝试从 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”被删除。

4

3 回答 3

16

这应该使用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 小提琴演示

与:

使用 Or 的 SQL Fiddle 演示

于 2013-03-31T03:09:40.280 回答
4

您可以使用NOT IN

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

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

于 2013-03-31T03:09:30.343 回答
2

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

于 2013-03-31T03:10:00.573 回答