programing

Mysql에서 id를 사용하여 테이블에서 많은 행 삭제

luckcodes 2022. 11. 27. 21:11

Mysql에서 id를 사용하여 테이블에서 많은 행 삭제

저는 Mysql 쿼리에 대한 기본적인 지식만 가진 Linux 관리자입니다.

id를 사용하여 테이블에서 IP 주소인 테이블 엔트리를 많이 삭제하고 싶다.

현재 사용하고 있습니다.

DELETE from tablename where id=1;
DELETE from tablename where id=2;

하지만 254개의 엔트리를 삭제해야 하기 때문에 이 방법은 몇 시간이 걸립니다.mysql에게 내가 지정한 행을 삭제하도록 지시하려면 어떻게 해야 합니까?이 254개 중 몇 개의 엔트리를 삭제하는 것을 생략하고 싶습니다.

테이블 전체를 삭제하고 필요한 엔트리를 Import할 수 없습니다.

가장 좋은 방법은IN스테이트먼트:

DELETE from tablename WHERE id IN (1,2,3,...,254);

를 사용할 수도 있습니다.BETWEEN연속된 ID가 있는 경우:

DELETE from tablename WHERE id BETWEEN 1 AND 254;

물론 다른 WHERE 절을 사용하여 일부 ID에 대한 제한을 설정할 수 있습니다.

DELETE from tablename WHERE id BETWEEN 1 AND 254 AND id<>10;

사용하는 것은 어때?IN

DELETE FROM tableName
WHERE ID IN (1,2) -- add as many ID as you want.

몇 개의 행만 유지할 필요가 있는 경우는,

DELETE FROM tablename WHERE id NOT IN (5,124,221);

이렇게 하면 일부 기록만 보관되고 나머지는 삭제됩니다.

이와 같은 기능을 통해 이 기능을 좀 더 쉽게 생성할 수 있습니다. 스크립트를 사용하여 이 기능을 생성할 수도 있고 뛰어난 성능을 제공할 수도 있습니다.

DELETE FROM tablename WHERE id IN (
1,
2,
3,
4,
5,
6
);

다른 사람들은 제안했습니다IN, 이건 괜찮아요.범위를 사용할 수도 있습니다.

DELETE from tablename where id<254 and id>3;

삭제할 ID가 연속적인 경우.

데이터에 254 ID를 파악하기 위한 '조건'이 있는 경우 다음을 사용할 수 있습니다.

delete from tablename
where id in 
(select id from tablename where <your-condition>)

또는 단순하게:

delete from tablename where <your-condition>

단순히 id 열의 254 값을 하드 코딩하는 것은 어떤 경우에도 매우 어렵습니다.

사용하다IN조항

   DELETE from tablename where id IN (1,2);

또는 다음 용도를 병합할 수 있습니다.BETWEEN그리고.NOT IN여러분이 언급해야 할 수치를 줄이기 위해서입니다.

DELETE from tablename 
where (id BETWEEN 1 AND 255) 
AND (id NOT IN (254));
DELETE FROM table_name WHERE id BETWEEN 1 AND 256;

이것을 시험해 보세요.

도움이 되기를 바랍니다.

DELETE FROM tablename 
WHERE tablename.id = ANY (SELECT id FROM tablename WHERE id = id);
DELETE FROM tablename WHERE id > 0;
OR
DELETE FROM tablename WHERE id <255;

1 ~ 254 의 ID 를 삭제합니다.

언급URL : https://stackoverflow.com/questions/15504020/delete-many-rows-from-a-table-using-id-in-mysql