-3

我有一个名为 person 的表(其中包含用户的登录 ID)。我正在测试我的应用程序并创建了几个测试用户。所以现在这张表有很多测试用户和一些普通用户。

我想知道如何删除所有测试用户?

使用一个一个删除所有用户DELETE login FROM person where login = 'test_user' ;需要很长时间。

PS:测试用户名中不包含test:/它们只是随机名称。

4

3 回答 3

5

你有所有测试用户的列表吗?

如果是这样,您可以进行如下查询

DELETE FROM person WHERE login IN ('user1', 'user2', 'user3', ...);

编辑

作为回应

我有一个有效用户列表,我想删除其余的。–钱基·帕塔克

采用

DELETE FROM person WHERE login NOT IN ('user1', 'user2', 'user3', ...);
于 2012-07-13T07:10:07.157 回答
1

您可以采取白名单方法:

如果您有一个想要保留的用户列表,但想要删除不在该有效列表中的行,您可以使用:

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 
于 2012-07-13T07:40:52.623 回答
0
DELETE FROM person where login like '%test%'

这将删除其名称包含的所有用户test

于 2012-07-13T07:07:11.163 回答