테이블에서 ID가 163-265 인 행을 삭제하기 위해 SQL 쿼리를 실행하려고합니다.
나는 더 적은 수의 행을 삭제하려고 시도했습니다.
DELETE FROM `table` WHERE id IN (264, 265)
그러나 한 번에 100 개의 행을 삭제할 때 위의 방법과 비슷한 쿼리가 있습니까? 이런 종류의 쿼리를 사용하려고했지만 실행하지 못했습니다.
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
답변
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>