我试图运行一个SQL查询,以删除表中ID为163到265的行。
我尝试使用以下代码来删除较少数量的行:
DELETE FROM `table` WHERE id IN (264, 265)
但是当需要一次删除数百行时,是否有类似上述方法的查询?我也尝试使用这种查询,但未能执行成功。
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
请告诉我执行上述操作的查询语句...我试图运行一个SQL查询,以删除表中ID为163到265的行。
我尝试使用以下代码来删除较少数量的行:
DELETE FROM `table` WHERE id IN (264, 265)
但是当需要一次删除数百行时,是否有类似上述方法的查询?我也尝试使用这种查询,但未能执行成功。
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
请告诉我执行上述操作的查询语句...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
SELECT * FROM your_table ORDER BY DESC
获取您想要删除的范围,例如:从3到10
DELETE FROM your_table
WHERE id BETWEEN 3 AND 10;
确保在BETWEEN子句中先添加最小值
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>