我正在尝试从 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”被删除。
我正在尝试从 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”被删除。
这应该使用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');
与:
您可以使用NOT IN
DELETE FROM mysql.user WHERE user NOT IN (1, 2)
两者都包括在内的原因很简单。1 <> 2
和2 <> 1
。
从 mysql.user 中删除用户不在 ('1','2') 中的用户