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

j'essaie d'exécuter une requête SQL pour supprimer des lignes avec des id 163 à 265 dans une table

j'ai essayé ceci pour supprimer moins de nombre de lignes

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

Mais quand il s'agit de supprimer 100 de lignes à la fois, Est-il une requête similaire à la méthode ci-dessus J'essaie aussi d'utiliser ce genre 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 à faire de l'action ci-dessus...

52
demandé sur Brian Tompsett - 汤莱恩 2013-04-16 09:31:15

5 réponses

si vous devez supprimer basé sur une liste, vous pouvez utiliser IN :

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

si vous devez supprimer basé sur le résultat d'une requête, vous pouvez également utiliser IN :

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

(notez que le sous-article ne doit retourner qu'une colonne)

si vous devez supprimer basé sur une gamme de valeurs, soit vous utilisez BETWEEN ou vous utilisez 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;
114
répondu Barranka 2013-04-16 05:35:59

vous pouvez utiliser BETWEEN :

DELETE FROM table
where id between 163 and 265
13
répondu leppie 2013-04-16 05:35:27

s'il vous Plaît essayez ce qui suit:

DELETE FROM `table` WHERE id >=163 and id<= 265
2
répondu Keerthi 2017-11-30 11:32:36
Delete Id from table where Id in (select id from table)
0
répondu Denny 2017-10-12 08:52:02
CREATE PROC [dbo].[sp_DELETE_MULTI_ROW]       
@CODE XML
,@ERRFLAG  CHAR(1) = '0' OUTPUT    

AS        

SET NOCOUNT ON  
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED  

DELETE tb_SampleTest
    WHERE 
        CODE IN(
            SELECT Item.value('.', 'VARCHAR(20)')
            FROM  @CODE.nodes('RecordList/ID') AS x(Item)
            )

IF @@ROWCOUNT = 0
    SET @ERRFLAG = 200

SET NOCOUNT OFF

Obtenir la valeur de la chaîne de supprimer

<RecordList>
    <ID>1</ID>
    <ID>2</ID>
</RecordList>
-5
répondu ThienPhuc 2016-05-13 04:58:26