MySQL은 각 행에 고유한 하나의 쿼리 조건에서 여러 행을 삭제합니다.
MySQL에서는 다음과 같이 하나의 쿼리에 여러 행을 삽입할 수 있습니다.
INSERT INTO table (col1,col2) VALUES (1,2),(3,4),(5,6)
같은 방법으로 여러 행을 삭제하고 싶습니다.각 행에 대해 동일한 조건에 따라 여러 행을 삭제할 수 있습니다.
DELETE FROM table WHERE col1='4' and col2='5'
또는
DELETE FROM table WHERE col1 IN (1,2,3,4,5)
그러나 한 쿼리에서 여러 행을 삭제하고 각 행마다 고유한 조건 집합을 가지려면 어떻게 해야 합니까?다음과 같은 것이 제가 찾고 있는 것입니다.
DELETE FROM table WHERE (col1,col2) IN (1,2),(3,4),(5,6)
이거 어떻게 하는지 아는 사람 있어?아니면 불가능한가?
당신은 매우 가까웠기 때문에, 이것을 사용할 수 있습니다.
DELETE FROM table WHERE (col1,col2) IN ((1,2),(3,4),(5,6))
이 바이올린을 보세요.
답변을 약간 확장한 것이므로 질문자나 찾는 사람에게 도움이 될 것입니다.
할 수도 있습니다.SELECT삭제할 값을 지정합니다.그러나 오류 1093 - 업데이트 대상 테이블을 FROM 절에서 지정할 수 없습니다.에 주의하십시오.
DELETE FROM
orders_products_history
WHERE
(branchID, action) IN (
SELECT
branchID,
action
FROM
(
SELECT
branchID,
action
FROM
orders_products_history
GROUP BY
branchID,
action
HAVING
COUNT(*) > 10000
) a
);
단일 액션/브런치의 이력 기록 수가 10,000개를 넘는 이력 기록을 모두 삭제하고 싶었습니다.그리고 이 질문과 선택된 대답 덕분에, 나는 할 수 있다.
이게 도움이 됐으면 좋겠네요.
리차드.
구글링을 많이 했지만, 값 목록을 사용하여 하나의 테이블에서 여러 항목을 삭제하고 싶을 때 MySql용 파이썬에서 수행하는 작업은 다음과 같습니다.
#create some empty list
values = []
#continue to append the values you want to delete to it
#BUT you must ensure instead of a string it's a single value tuple
values.append(([Your Variable],))
#Then once your array is loaded perform an execute many
cursor.executemany("DELETE FROM YourTable WHERE ID = %s", values)
언급URL : https://stackoverflow.com/questions/14904067/mysql-delete-multiple-rows-in-one-query-conditions-unique-to-each-row
'programing' 카테고리의 다른 글
| MYSQL에서 SQL을 사용하여 두 날짜 시간 값에서 빼서 몇 분 또는 몇 초 안에 결과를 가져오려면 어떻게 해야 합니까? (0) | 2022.10.21 |
|---|---|
| 두 시간 문자열 사이의 시간 간격 계산 방법 (0) | 2022.10.21 |
| Laravel Storage 폴더에 대한 경로는 어떻게 얻습니까? (0) | 2022.10.21 |
| Google Maps VueJS 컴포넌트(vue2-google-maps)를 Larabel 블레이드 뷰에 통합 (0) | 2022.10.21 |
| 판다 '카운트(distinct)' 상당)' (0) | 2022.10.21 |