web-dev-qa-db-fra.com

Comment supprimer plusieurs lignes en SQL où id = (x à y)

J'essaie d'exécuter une requête SQL pour supprimer des lignes dont l'identifiant est compris entre 163 et 265 dans un tableau.

J'ai essayé de supprimer moins de lignes

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

Mais lorsqu'il s'agit de supprimer des centaines de lignes à la fois, existe-t-il une requête similaire à la méthode ci-dessus? J'essaie également d'utiliser ce type de requête mais je n'ai pas réussi à l'exécuter.

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

S'il vous plaît dites-moi la requête pour faire l'action ci-dessus ...

68
balu zapps

Si vous devez supprimer en fonction d'une liste, vous pouvez utiliser IN:

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

Si vous devez supprimer en fonction du résultat d'une requête, vous pouvez également utiliser IN:

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

(Notez que la sous-requête ne doit renvoyer qu'une colonne)

Si vous devez supprimer en fonction d'une plage de valeurs, utilisez soit BETWEEN, soit vous utilisez des inégalités:

delete from your_table
where id between bottom_value and top_value;

ou

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

Vous pouvez utiliser BETWEEN:

DELETE FROM table
where id between 163 and 265
17
leppie

S'il vous plaît essayez ceci:

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