[SQL] SQL에서 여러 행을 삭제하는 방법 어디 ID = (X와 Y)
SQLSQL에서 여러 행을 삭제하는 방법 어디 ID = (X와 Y)
나는 테이블에 ID를 163 265으로 삭제 행에 SQL 쿼리를 실행하려고
나는 행의 적은 번호를 삭제하려면이 시도
DELETE FROM `table` WHERE id IN (264, 265)
그것은 한 번에 행 (100 개)의 삭제에 관해서 때, 어떤 쿼리는 위의 방법과 유사 있습니까 또한 쿼리의이 종류를 사용하려고 시도하지만 실행에 실패하고
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
위의 작업을 수행하는 나에게 쿼리를 알려주세요 ...
해결법
-
==============================
1.당신이 목록을 기반으로 삭제해야 할 경우 IN을 사용할 수 있습니다 :
당신이 목록을 기반으로 삭제해야 할 경우 IN을 사용할 수 있습니다 :
DELETE FROM your_table WHERE id IN (value1, value2, ...);
쿼리의 결과에 따라 삭제해야하는 경우, 당신은 또한에 사용할 수 있습니다 :
DELETE FROM your_table WHERE id IN (select aColumn from ...);
(주의 서브 쿼리는 하나의 열을 반환해야 함)
당신도 당신 사이에 사용하거나 불평등을 사용하여 값의 범위에 따라 삭제해야하는 경우 :
DELETE FROM your_table WHERE id BETWEEN bottom_value AND top_value;
또는
DELETE FROM your_table WHERE id >= a_value AND id <= another_value;
-
==============================
2.당신은 BETWEEN 사용할 수 있습니다 :
당신은 BETWEEN 사용할 수 있습니다 :
DELETE FROM table where id between 163 and 265
-
==============================
3.이것을 시도하십시오 :
이것을 시도하십시오 :
DELETE FROM `table` WHERE id >=163 and id<= 265
-
==============================
4.
Delete Id from table where Id in (select id from table)
-
==============================
5.
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>
from https://stackoverflow.com/questions/16029441/how-to-delete-multiple-rows-in-sql-where-id-x-to-y by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 왜 대다 관계? (0) | 2020.06.21 |
---|---|
[SQL] id 필드에 다시 씨앗으로 길을 레일 (0) | 2020.06.21 |
[SQL] 날짜 범위와 PostgreSQL을 쿼리 (0) | 2020.06.21 |
[SQL] 최대 절전 모드 createSQlquery 결과에서 SQL 열 이름을 사용 (0) | 2020.06.21 |
[SQL] 십자가의 용도는 무엇을 가입입니까? (0) | 2020.06.21 |