Я пытаюсь запустить SQL-запрос для удаления строк с идентификаторами от 163 до 265 в таблице
Я пробовал удалить меньшее количество строк
DELETE FROM `table` WHERE id IN (264, 265)
Но когда дело доходит до удаления 100 строк за раз, есть ли какой-либо запрос, аналогичный приведенному выше методу, я также пытаюсь использовать этот тип запроса, но не смог его выполнить
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
Скажите, пожалуйста, запрос на выполнение вышеуказанного действия ...
sql
sql-delete
Balu Zapps
источник
источник
Ответы:
Если вам нужно удалить на основе списка, вы можете использовать
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;
источник
Вы можете использовать
BETWEEN
:DELETE FROM table where id between 163 and 265
источник
Пожалуйста, попробуйте это:
DELETE FROM `table` WHERE id >=163 and id<= 265
источник
Delete Id from table where Id in (select id from table)
источник
delete
утверждения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
Получить строковое значение удалить
источник