SQL'de birden fazla satır nasıl silinir where id = (x to y)

Bir tablodaki 163 ila 265 id'li satırları silmek için bir SQL sorgusu çalıştırmaya çalışıyorum

Daha az sayıda satırı silmek için şunu denedim

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

Ancak bir seferde 100'lerce satırı silmek söz konusu olduğunda, yukarıdaki yönteme benzer herhangi bir sorgu var mı? Ben de bu tür bir sorgu kullanmaya çalışıyorum ancak çalıştırmayı başaramadım

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

Lütfen bana yukarıdaki işlemi yapmak için sorguyu söyleyin ...

Bir listeye dayalı olarak silmeniz gerekiyorsa, IN kullanabilirsiniz:

DELETE FROM your_table
WHERE id IN (value1, value2, ...);

Bir sorgunun sonucuna göre silmeniz gerekiyorsa, IN de kullanabilirsiniz:

DELETE FROM your_table
WHERE id IN (select aColumn from ...);

(Alt sorgunun yalnızca bir sütun döndürmesi gerektiğine dikkat edin)

Bir değer aralığına göre silmeniz gerekiyorsa, ya BETWEEN kullanırsınız ya da eşitsizlikler kullanırsınız:

DELETE FROM your_table
WHERE id BETWEEN bottom_value AND top_value;

veya


DELETE FROM your_table
WHERE id >= a_value AND id 
Yorumlar (4)

BETWEEN` kullanabilirsiniz:

DELETE FROM table
where id between 163 and 265
Yorumlar (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

Dize değerini al sil


    1
    2
Yorumlar (0)