web-dev-qa-db-ja.com

id =(x to y)のSQLで複数の行を削除する方法

テーブルでIDが163〜265の行を削除するSQLクエリを実行しようとしています

削除する行の数を減らしてみました

    DELETE FROM `table` WHERE id IN (264, 265)

しかし、一度に数百の行を削除することになると、上記の方法に似たクエリがありますか?この種類のクエリを使用しようとしていますが、実行に失敗しました

    DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )

上記のアクションを実行するためのクエリを教えてください...

64
balu zapps

リストに基づいて削除する必要がある場合は、INを使用できます。

delete from your_table
where id in (value1, value2, ...);

クエリの結果に基づいて削除する必要がある場合は、INも使用できます。

delete from your_table
where id in (select aColumn from ...);

(サブクエリは1列のみを返す必要があることに注意してください)

値の範囲に基づいて削除する必要がある場合は、BETWEENを使用するか、不等式を使用します。

delete from your_table
where id between bottom_value and top_value;

または

delete from your_table
where id >= a_value and id <= another_value;
140
Barranka

BETWEENを使用できます。

DELETE FROM table
where id between 163 and 265
16
leppie

これを試してください:

DELETE FROM `table` WHERE id >=163 and id<= 265
2
Keerthi
Delete Id from table where Id in (select id from table)
0
Denny