-3

person (ユーザーのログイン ID を含む) という名前のテーブルがあります。私は自分のアプリケーションをテストしていて、いくつかのテスト ユーザーを作成しました。したがって、現在、このテーブルには多くのテスト ユーザーと何人かの通常ユーザーがいます。

すべてのテスト ユーザーを削除する方法を教えてください。

を使用してすべてのユーザーを 1 つずつ削除する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 に答える