mysql에서는 "SELECT" 문과 "DISTINCT" 키워드를 사용하여 중복 제거 쿼리를 수행하고 중복 데이터를 필터링할 수 있습니다. 구문은 "SELECT DISTINCT field name FROM data table name;"입니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
MySQL에서는 SELECT
语句执行简单的数据查询时,返回的是所有匹配的记录。如果表中的某些字段没有唯一性约束,那么这些字段就可能存在重复值。为了实现查询不重复的数据,MySQL 提供了 DISTINCT
키워드를 사용하세요.
DISTINCT 키워드의 주요 기능은 데이터 테이블의 하나 이상의 필드에서 중복 데이터를 필터링하고 사용자에게 하나의 데이터만 반환하는 것입니다.
DISTINCT 키워드의 구문 형식은 다음과 같습니다.
SELECT DISTINCT <字段名> FROM <表名>;
그 중 "필드 이름"은 중복 레코드를 제거해야 하는 필드의 이름입니다. 필드가 여러 개인 경우 쉼표로 구분하세요.
DISTINCT 키워드 사용 시 다음 사항에 주의해야 합니다.
DISTINCT 키워드는 SELECT 문에서만 사용할 수 있습니다.
하나 이상의 필드를 중복 제거하는 경우 DISTINCT 키워드가 모든 필드 앞에 있어야 합니다.
DISTINCT 키워드 뒤에 여러 필드가 있는 경우 여러 필드가 결합되어 중복이 제거됩니다. 즉, 여러 필드의 조합이 정확히 동일한 경우에만 중복이 제거됩니다.
Example
다음에서는 특정 예를 사용하여 중복되지 않은 데이터를 쿼리하는 방법을 보여줍니다.
테스트 데이터베이스에 있는 학생 테이블의 테이블 구조와 데이터는 다음과 같습니다.
mysql> SELECT * FROM test.student; +----+----------+------+-------+ | id | name | age | stuno | +----+----------+------+-------+ | 1 | zhangsan | 18 | 23 | | 2 | lisi | 19 | 24 | | 3 | wangwu | 18 | 25 | | 4 | zhaoliu | 18 | 26 | | 5 | zhangsan | 18 | 27 | | 6 | wangwu | 20 | 28 | +----+----------+------+-------+ 6 rows in set (0.00 sec)
결과에 따르면 학생 테이블에는 6개의 레코드가 있습니다.
student 테이블의 age 필드를 중복 제거하는 방법은 다음과 같습니다.
mysql> SELECT DISTINCT age FROM student; +------+ | age | +------+ | 18 | | 19 | | 20 | +------+ 3 rows in set (0.00 sec)
student 테이블의 name 및 age 필드를 중복 제거한 결과는 다음과 같습니다. :
mysql> SELECT DISTINCT name,age FROM student; +----------+------+ | name | age | +----------+------+ | zhangsan | 18 | | lisi | 19 | | wangwu | 18 | | zhaoliu | 18 | | wangwu | 20 | +----------+------+ 5 rows in set (0.00 sec)
student 테이블의 경우 모든 필드가 중복 제거됩니다. SQL 문과 실행 결과는 다음과 같습니다.
mysql> SELECT DISTINCT * FROM student; +----+----------+------+-------+ | id | name | age | stuno | +----+----------+------+-------+ | 1 | zhangsan | 18 | 23 | | 2 | lisi | 19 | 24 | | 3 | wangwu | 18 | 25 | | 4 | zhaoliu | 18 | 26 | | 5 | zhangsan | 18 | 27 | | 6 | wangwu | 20 | 28 | +----+----------+------+-------+ 6 rows in set (0.00 sec)
DISTINCT는 대상 필드만 반환할 수 있고 다른 필드는 반환할 수 없기 때문에 실제 상황에서는 DISTINCT를 사용하는 경우가 많습니다. 고유한 필드 수의 항목을 반환하는 키워드입니다.
이름과 나이 필드를 중복 제거한 후 학생 테이블의 레코드 수를 쿼리합니다. SQL 문과 실행 결과는 다음과 같습니다.
mysql> SELECT COUNT(DISTINCT name,age) FROM student; +--------------------------+ | COUNT(DISTINCT name,age) | +--------------------------+ | 5 | +--------------------------+ 1 row in set (0.01 sec)
결과는 이름 중복을 제거한 후 학생 테이블에 5개의 레코드가 있음을 보여줍니다. 및 연령 필드.
【관련 추천: mysql 비디오 튜토리얼】
위 내용은 mysql에서 중복된 데이터를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!