Estoy tratando de ejecutar una consulta SQL para eliminar filas con id's 163 a 265 en una tabla
Intenté esto para eliminar un número menor de filas
DELETE FROM `table` WHERE id IN (264, 265)
Pero cuando se trata de eliminar 100 filas a la vez, ¿hay alguna consulta similar al método anterior? También estoy tratando de utilizar este tipo de consulta, pero no pudo ejecutarlo
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
Por favor, dígame la consulta para hacer la acción anterior...
Si necesitas borrar en base a una lista, puedes utilizar IN
:
DELETE FROM your_table
WHERE id IN (value1, value2, ...);
Si necesita eliminar basándose en el resultado de una consulta, también puede utilizar IN
:
DELETE FROM your_table
WHERE id IN (select aColumn from ...);
(Tenga en cuenta que la subconsulta debe devolver sólo una columna)
Si necesita eliminar en base a un rango de valores, o bien utiliza BETWEEN
o bien utiliza 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;
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
Obtener el valor de la cadena de borrar
<RecordList>
<ID>1</ID>
<ID>2</ID>
</RecordList>