我有一个名为 person 的表(其中包含用户的登录 ID)。我正在测试我的应用程序并创建了几个测试用户。所以现在这张表有很多测试用户和一些普通用户。
我想知道如何删除所有测试用户?
使用一个一个删除所有用户DELETE login FROM person where login = 'test_user' ;
需要很长时间。
PS:测试用户名中不包含test:/它们只是随机名称。
我有一个名为 person 的表(其中包含用户的登录 ID)。我正在测试我的应用程序并创建了几个测试用户。所以现在这张表有很多测试用户和一些普通用户。
我想知道如何删除所有测试用户?
使用一个一个删除所有用户DELETE login FROM person where login = 'test_user' ;
需要很长时间。
PS:测试用户名中不包含test:/它们只是随机名称。
你有所有测试用户的列表吗?
如果是这样,您可以进行如下查询
DELETE FROM person WHERE login IN ('user1', 'user2', 'user3', ...);
编辑
作为回应
我有一个有效用户列表,我想删除其余的。–钱基·帕塔克
采用
DELETE FROM person WHERE login NOT IN ('user1', 'user2', 'user3', ...);
您可以采取白名单方法:
如果您有一个想要保留的用户列表,但想要删除不在该有效列表中的行,您可以使用:
DELETE FROM person WHERE login NOT IN (<listOfValid>)
如果您将所有有效用户存储在表中,则可以执行以下操作:
DELETE a FROM person a
LEFT JOIN validpersons b ON a.name = b.name
WHERE b.name IS NULL
DELETE FROM person where login like '%test%'
这将删除其名称包含的所有用户test