이 문서에서는 주로 MySQL에서 중복 데이터를 삭제하는 방법을 공유합니다. 이 문서에서는 예제를 통해 설명하고 도움이 되기를 바랍니다.
FROM `ex` WHERE 전화를 삭제하고(SELECT c.phone
FROM `ex` as c
GROUP BY c.phone
HAVING COUNT( * ) >1) 및 ID가 없음(max(b. id) from `ex` as b group by b.phone);
참고: ex(예제 테이블 이름), 전화 필드를 기준으로 중복 여부를 확인합니다. 가장 최근에 삽입된 것(즉, 자동 증가 ID가 가장 큰 것)을 반복적으로 유지
그러나 실행 후 결과가 예상과 다릅니다:
/* SQL 오류(1093): 지정할 수 없습니다. FROM 절에서 업데이트할 대상 테이블 'ex' */
번역: 동일한 테이블에서 특정 값을 먼저 선택한 다음 (동일한 문에서) 테이블을 업데이트(삭제)할 수 없습니다. 특정 필드의 값을 기준으로 판단한 다음 특정 필드의 값을 업데이트합니다.
질문은 oracle, sql 서버 등을 제외한 mysql에만 해당됩니다. mysql의 하위 설명 지원이 그리 좋지 않기 때문입니다.
문제 해결 방법:
먼저 결과를 선택한 다음 중간 테이블을 통해 다시 선택하면 별칭이 있는 캐시된 테이블, 즉 가상 테이블이 됩니다. .
그림과 같이 MySQL SQL 문에서 중복된 정보를 삭제하는 문제를 해결합니다.
모든 사람의 편의를 위해:
DELETE FROM `ex` WHERE id NOT IN ( SELECT id FROM (SELECT max(b.id) AS id FROM `ex` b GROUP BY b.phone) b);
관련 권장 사항:
Mysql은 중복 데이터를 삭제하고 가장 작은 ID를 유지합니다.
MySQL 삭제 데이터 행을 복제하고 저장합니다. 오직 하나
위 내용은 MySQL은 데이터 중복 제거를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!