Я пытаюсь запустить SQL-запрос, чтобы удалить строки с id'с 163 до 265 в таблице
Я попробовал удалить меньшее количество строк
DELETE FROM `table` WHERE id IN (264, 265)
Но когда дело доходит до удаления 100'ов строк за раз, есть ли запрос, аналогичный вышеуказанным способом Я также пытаюсь использовать этот вид запросов, но не удалось выполнить это
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
Скажите, пожалуйста, запрос для выполнения перечисленных выше действий...
Если вам нужно удалить из списка, вы можете использовать в
:
DELETE FROM your_table
WHERE id IN (value1, value2, ...);
Если вам нужно удалить на основе результата запроса, вы также можете использовать в
:
DELETE FROM your_table
WHERE id IN (select aColumn from ...);
(Обратите внимание, что подзапрос должен возвращать только один столбец)
Если вам нужно удалить на основе диапазона значений, либо вы используете "между" или использовать неравенство:
DELETE FROM your_table
WHERE id BETWEEN bottom_value AND top_value;
или
DELETE FROM your_table
WHERE id >= a_value AND id <= another_value;
Пожалуйста, попробуйте это:
DELETE FROM `table` WHERE id >=163 and id<= 265
Delete Id from table where Id in (select id from table)
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
Получить строковое значение удалить
<RecordList>
<ID>1</ID>
<ID>2</ID>
</RecordList>