Как удалить несколько строк в SQL, где id = (от x до y)

Я пытаюсь запустить SQL-запрос для удаления строк с идентификатором от 163 до 265 в таблице

Я попробовал это, чтобы удалить меньшее количество строк

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

Но когда дело доходит до 100 строк за раз, есть ли какой-либо запрос, похожий на описанный выше метод Я также пытаюсь использовать этот вид запроса, но не смог выполнить его

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

Скажите, пожалуйста, запрос выполнить вышеуказанное действие...

Ответ 1

Если вам нужно удалить на основе списка, вы можете использовать IN:

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

Если вам нужно удалить на основе результата запроса, вы также можете использовать IN:

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

(Обратите внимание, что подзапрос должен возвращать только один столбец)

Если вам нужно удалить в зависимости от диапазона значений, либо используйте BETWEEN, либо используйте неравенства:

delete from your_table
where id between bottom_value and top_value;

или

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

Ответ 2

Вы можете использовать BETWEEN:

DELETE FROM table
where id between 163 and 265

Ответ 3

Пожалуйста, попробуйте следующее:

DELETE FROM `table` WHERE id >=163 and id<= 265

Ответ 4

Delete Id from table where Id in (select id from table)

Ответ 5

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

<RecordList>
    <ID>1</ID>
    <ID>2</ID>
</RecordList>