Heim > Datenbank > MySQL-Tutorial > So entfernen Sie doppelte Daten in MySQL

So entfernen Sie doppelte Daten in MySQL

青灯夜游
Freigeben: 2022-01-05 12:05:37
Original
61428 Leute haben es durchsucht

In MySQL können Sie die Anweisung „SELECT“ und das Schlüsselwort „DISTINCT“ verwenden, um Deduplizierungsabfragen durchzuführen und doppelte Daten herauszufiltern. Die Syntax lautet „SELECT DISTINCT field name FROM data table name;“.

So entfernen Sie doppelte Daten in MySQL

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Verwenden Sie das Schlüsselwort SELECT 语句执行简单的数据查询时,返回的是所有匹配的记录。如果表中的某些字段没有唯一性约束,那么这些字段就可能存在重复值。为了实现查询不重复的数据,MySQL 提供了 DISTINCT in MySQL.

Die Hauptfunktion des DISTINCT-Schlüsselworts besteht darin, doppelte Daten in einem oder mehreren Feldern in der Datentabelle zu filtern und nur ein Datenelement an den Benutzer zurückzugeben. Das Syntaxformat des Schlüsselworts

DISTINCT lautet:

SELECT DISTINCT <字段名> FROM <表名>;
Nach dem Login kopieren

Unter diesen ist „Feldname“ der Name des Feldes, das doppelte Datensätze entfernen muss. Wenn mehrere Felder vorhanden sind, trennen Sie diese durch Kommas.

Bei der Verwendung des Schlüsselworts DISTINCT müssen Sie folgende Punkte beachten:

  • Das Schlüsselwort DISTINCT kann nur in einer SELECT-Anweisung verwendet werden.

  • Beim Deduplizieren eines oder mehrerer Felder muss das Schlüsselwort DISTINCT an der Spitze aller Felder stehen.

  • Wenn nach dem Schlüsselwort DISTINCT mehrere Felder vorhanden sind, werden die mehreren Felder kombiniert und dedupliziert. Das heißt, nur wenn die Kombination mehrerer Felder genau gleich ist, werden sie dedupliziert.

Beispiel

Im Folgenden wird anhand eines konkreten Beispiels veranschaulicht, wie nicht duplizierte Daten abgefragt werden.

Die Tabellenstruktur und die Daten der Schülertabelle in der Testdatenbank lauten wie folgt:

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)
Nach dem Login kopieren

Die Ergebnisse zeigen, dass die Schülertabelle 6 Datensätze enthält.

Das Folgende ist, um das Altersfeld der Schülertabelle zu deduplizieren. Die SQL-Anweisung und das laufende Ergebnis lauten wie folgt:

mysql> SELECT DISTINCT age FROM student;
+------+
| age  |
+------+
|   18 |
|   19 |
|   20 |
+------+
3 rows in set (0.00 sec)
Nach dem Login kopieren

Die Namens- und Altersfelder der Schülertabelle werden wie folgt dedupliziert :

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)
Nach dem Login kopieren

Für die Schülertabelle werden alle Felder dedupliziert. Die SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt:

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)
Nach dem Login kopieren

Da DISTINCT nur sein Zielfeld und keine anderen Felder zurückgeben kann, verwenden wir in tatsächlichen Situationen häufig DISTINCT Schlüsselwort, um eindeutige Felder mit der Anzahl der Elemente zurückzugeben.

Fragen Sie die Anzahl der Datensätze in der Schülertabelle nach der Deduplizierung der Namens- und Altersfelder ab. Die SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt:

mysql> SELECT COUNT(DISTINCT name,age) FROM student;
+--------------------------+
| COUNT(DISTINCT name,age) |
+--------------------------+
|                        5 |
+--------------------------+
1 row in set (0.01 sec)
Nach dem Login kopieren

Die Ergebnisse zeigen, dass nach der Deduplizierung des Namens 5 Datensätze in der Schülertabelle vorhanden sind und Altersfelder.

【Verwandte Empfehlung: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo entfernen Sie doppelte Daten in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage