How to delete multiple rows in SQL where id = (x to y)

后端 未结 5 2005
甜味超标
甜味超标 2020-12-04 07:23

I am trying to run a SQL query to delete rows with id\'s 163 to 265 in a table

I tried this to delete less number of rows

    DELETE FROM `table` WHE         


        
相关标签:
5条回答
  • 2020-12-04 07:55
    Delete Id from table where Id in (select id from table)
    
    0 讨论(0)
  • 2020-12-04 07:58
    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
    

    Get string value delete

    <RecordList>
        <ID>1</ID>
        <ID>2</ID>
    </RecordList>
    
    0 讨论(0)
  • 2020-12-04 08:05

    You can use BETWEEN:

    DELETE FROM table
    where id between 163 and 265
    
    0 讨论(0)
  • 2020-12-04 08:12

    Please try this:

    DELETE FROM `table` WHERE id >=163 and id<= 265
    
    0 讨论(0)
  • 2020-12-04 08:21

    If you need to delete based on a list, you can use IN:

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

    If you need to delete based on the result of a query, you can also use IN:

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

    (Notice that the subquery must return only one column)

    If you need to delete based on a range of values, either you use BETWEEN or you use inequalities:

    DELETE FROM your_table
    WHERE id BETWEEN bottom_value AND top_value;
    

    or

    DELETE FROM your_table
    WHERE id >= a_value AND id <= another_value;
    
    0 讨论(0)
提交回复
热议问题