Estoy tratando de ejecutar una consulta SQL para eliminar filas con ID 163 a 265 en una tabla
Intenté esto para eliminar menos filas
DELETE FROM `table` WHERE id IN (264, 265)
Pero cuando se trata de eliminar cientos de filas a la vez, ¿hay alguna consulta similar al método anterior? También estoy tratando de usar este tipo de consulta pero no pude ejecutarla
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
Por favor dígame la consulta para realizar la acción anterior ...
sql
sql-delete
balu zapps
fuente
fuente
Respuestas:
Si necesita eliminar en función de una lista, puede usar
IN
:DELETE FROM your_table WHERE id IN (value1, value2, ...);
Si necesita eliminar según el resultado de una consulta, también puede usar
IN
:DELETE FROM your_table WHERE id IN (select aColumn from ...);
(Tenga en cuenta que la subconsulta debe devolver solo una columna)
Si necesita eliminar en función de un rango de valores, use
BETWEEN
o use desigualdades:DELETE FROM your_table WHERE id BETWEEN bottom_value AND top_value;
o
DELETE FROM your_table WHERE id >= a_value AND id <= another_value;
fuente
Puede utilizar
BETWEEN
:DELETE FROM table where id between 163 and 265
fuente
Por favor intente esto:
DELETE FROM `table` WHERE id >=163 and id<= 265
fuente
Delete Id from table where Id in (select id from table)
fuente
delete
declaraciónCREATE 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
Obtener valor de cadena eliminar
fuente