Estou tentando executar uma consulta SQL para excluir linhas com id's 163 a 265 em uma tabela
Eu tentei isso para excluir menos número de linhas
DELETE FROM `table` WHERE id IN (264, 265)
Mas quando se trata de deletar centenas de linhas por vez, há alguma consulta semelhante ao método acima? Também estou tentando usar esse tipo de consulta, mas não consegui executá-la
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
Diga-me a consulta para fazer a ação acima ...
sql
sql-delete
Balu Zapps
fonte
fonte
Respostas:
Se precisar excluir com base em uma lista, você pode usar
IN
:DELETE FROM your_table WHERE id IN (value1, value2, ...);
Se precisar excluir com base no resultado de uma consulta, você também pode usar
IN
:DELETE FROM your_table WHERE id IN (select aColumn from ...);
(Observe que a subconsulta deve retornar apenas uma coluna)
Se você precisar excluir com base em uma faixa de valores, use
BETWEEN
ou use desigualdades:DELETE FROM your_table WHERE id BETWEEN bottom_value AND top_value;
ou
DELETE FROM your_table WHERE id >= a_value AND id <= another_value;
fonte
Você pode usar
BETWEEN
:DELETE FROM table where id between 163 and 265
fonte
Por favor, tente isto:
DELETE FROM `table` WHERE id >=163 and id<= 265
fonte
Delete Id from table where Id in (select id from table)
fonte
delete
declaraçãoCREATE 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
Apagar valor de string
fonte