중복 검사를 구현하고 하나만 유지하는 Mysql 방법: 먼저 "select * from"을 통해 테이블에서 중복된 중복 레코드를 찾은 다음 "delete from"을 통해 중복 데이터를 삭제하고 하나의 데이터만 유지합니다.
권장: "mysql 비디오 튜토리얼"
mysql은 중복 데이터를 삭제하고 하나의 기록만 유지합니다
는 중복 데이터를 삭제하고 이름에서 가장 작은 ID를 가진 기록을 유지합니다
delete from order_info where id not in (select id from (select min(id) as id from order_info group by order_number) as b);
delete from table where id not in (select min(id) from table group by name having count(name)>1) and id in (select id group by name having count(name)>1)
(참고 : HAVING 절 쌍 GROUP BY 절은 WHERE 검색 조건이 그룹화 작업 전에 적용되는 방식과 유사하게 설정되며, HAVING 검색 조건은 그룹화 작업 후에 적용됩니다. 그러나 HAVING은 집계를 포함할 수 있습니다. )
확장:
SQL: 중복된 데이터를 제거하고 하나만 유지합니다. 레코드에 동일한 레코드가 몇 개 있습니다. 중복 레코드를 삭제하려면 어떻게 해야 하나요? 1. 테이블에서 중복된 레코드를 찾으세요. 중복 레코드는 단일 필드(peopleId)를 기준으로 판단됩니다. , 테이블에서 중복된 레코드를 삭제합니다. 중복된 레코드는 단일 필드(peopleId)를 기준으로 판단되며, 가장 작은 rowid를 가진 레코드만 남깁니다.
select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
3 테이블에서 중복된 중복 레코드(여러 필드)를 찾습니다.
delete from people where peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1) and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName)>1)
4 . 테이블에서 중복된 중복 레코드(다중 필드)를 삭제하고 rowid가 가장 작은 레코드만 남겨둡니다
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
5. 테이블에서 rowid가 가장 작은 레코드(다중 필드)를 제외하고 중복 레코드(다중 필드)를 찾습니다. 6. 필드 왼쪽의 첫 번째 숫자 제거:
delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
7. 필드 오른쪽의 첫 번째 숫자 제거:
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
8. 테이블에서 해당 레코드를 제외한 중복된 레코드(여러 필드)를 가짜로 삭제합니다. 가장 작은 rowid로
update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'
위 내용은 mysql에서 중복 검사를 구현하고 하나만 남기는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!