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

テーブル内のid'163~265の行を削除するSQLクエリを実行しようとしています。

少ない数の行を削除するために次のことを試しました。

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

しかし、一度に100行もの行を削除するとなると、上記の方法に似たクエリはありませんか? 私もこのようなクエリを使おうとしていますが、実行に失敗しました。

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

上記の動作を行うためのクエリを教えてください...

リストに基づいて削除する必要がある場合は、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 
解説 (4)

BETWEEN`を使うことができます。

DELETE FROM table
where id between 163 and 265
解説 (0)
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

文字列の値を取得する delete


    1
    2
解説 (0)