Rumah > pangkalan data > tutorial mysql > Bagaimana untuk membuang data pendua dalam mysql

Bagaimana untuk membuang data pendua dalam mysql

青灯夜游
Lepaskan: 2022-01-05 12:05:37
asal
61435 orang telah melayarinya

Dalam mysql, anda boleh menggunakan pernyataan "SELECT" dan kata kunci "DISTINCT" untuk melakukan pertanyaan penduaan dan menapis data pendua Sintaks ialah "SELECT DISTINCT field name FROM data table name;".

Bagaimana untuk membuang data pendua dalam mysql

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Apabila menggunakan pernyataan SELECT untuk melaksanakan pertanyaan data mudah dalam MySQL, semua rekod yang sepadan dikembalikan. Jika sesetengah medan dalam jadual tidak mempunyai kekangan unik, nilai pendua mungkin wujud dalam medan ini. Untuk menanyakan data unik, MySQL menyediakan kata kunci DISTINCT.

Fungsi utama kata kunci DISTINCT adalah untuk menapis data pendua dalam satu atau lebih medan dalam jadual data dan mengembalikan hanya satu keping data kepada pengguna.

Format sintaks kata kunci DISTINCT ialah:

SELECT DISTINCT <字段名> FROM <表名>;
Salin selepas log masuk

Antaranya, "nama medan" ialah nama medan yang perlu menghapuskan rekod pendua. Gunakan koma apabila terdapat berbilang medan dipisahkan.

Perkara berikut perlu diberi perhatian apabila menggunakan kata kunci DISTINCT:

  • Kata kunci DISTINCT hanya boleh digunakan dalam pernyataan SELECT.

  • Apabila menyahduplikasi satu atau lebih medan, kata kunci DISTINCT mesti berada di hadapan semua medan.

  • Jika terdapat berbilang medan selepas kata kunci DISTINCT, berbilang medan akan digabungkan dan dinyahduakan, hanya apabila gabungan berbilang medan adalah sama dinyahduplikasi.

Contoh

Yang berikut menggunakan contoh khusus untuk menggambarkan cara untuk menanyakan data bukan pendua.

Struktur jadual dan data jadual pelajar dalam pangkalan data ujian adalah seperti berikut:

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)
Salin selepas log masuk

Keputusan menunjukkan terdapat 6 rekod dalam jadual pelajar.

Berikut adalah untuk menyahduplikasi medan umur jadual pelajar dan keputusan yang dijalankan adalah seperti berikut:

mysql> SELECT DISTINCT age FROM student;
+------+
| age  |
+------+
|   18 |
|   19 |
|   20 |
+------+
3 rows in set (0.00 sec)
Salin selepas log masuk

Untuk menyahduplikasi medan nama dan umur jadual pelajar, penyataan SQL dan keputusan berjalan adalah seperti berikut: Keputusan adalah seperti berikut:

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)
Salin selepas log masuk

Nyahduplikasi semua medan dalam jadual pelajar dan keputusan berjalan adalah seperti berikut:

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)
Salin selepas log masuk

Oleh kerana DISTINCT hanya boleh mengembalikan medan sasarannya, dan Medan lain tidak boleh dikembalikan, jadi dalam situasi sebenar, kami sering menggunakan kata kunci DISTINCT untuk mengembalikan bilangan medan unik.

Soal bilangan rekod selepas menyahgandakan medan nama dan umur dalam jadual pelajar Penyataan SQL dan hasil larian adalah seperti berikut:

mysql> SELECT COUNT(DISTINCT name,age) FROM student;
+--------------------------+
| COUNT(DISTINCT name,age) |
+--------------------------+
|                        5 |
+--------------------------+
1 row in set (0.01 sec)
Salin selepas log masuk

Hasilnya menunjukkan bahawa nama dan umur. medan dalam jadual pelajar ialah Selepas penyahduaan, terdapat 5 rekod.

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci Bagaimana untuk membuang data pendua dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan