Rumah >pangkalan data >tutorial mysql >rekod pendua pertanyaan mysql
MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas dengan pertanyaan data yang berkuasa dan keupayaan pengurusan. Apabila menggunakan MySQL, anda sering menghadapi situasi di mana anda perlu menanyakan rekod pendua. Artikel ini akan memperkenalkan cara membuat pertanyaan untuk rekod pendua dalam MySQL.
1 Gunakan pernyataan GROUP BY untuk menanyakan rekod pendua
Dalam MySQL, anda boleh menggunakan pernyataan GROUP BY untuk menanyakan rekod pendua. Penyata GROUP BY mengumpulkan data yang sama dan melakukan pengiraan pada setiap kumpulan. Dengan menapis hasil pengiraan, rekod pendua boleh ditapis keluar.
Sebagai contoh, jika anda ingin menanyakan nama pendua dan alamat e-mel dalam jadual, anda boleh menggunakan pernyataan SQL berikut:
SELECT name, email, COUNT(*) FROM users GROUP BY name, email HAVING COUNT(*) > 1;
Pernyataan ini menggunakan pernyataan GROUP BY untuk mengumpulkan yang sama nama dan alamat e-mel dan mengira setiap kumpulan. Jika hasil kiraan lebih besar daripada 1, ia adalah rekod pendua. Hasil pertanyaan akhir termasuk nama, alamat e-mel dan nilai kiraan.
2. Gunakan kata kunci DISTINCT untuk menanyakan rekod pendua
Selain menggunakan pernyataan GROUP BY, anda juga boleh menggunakan kata kunci DISTINCT untuk menanyakan rekod pendua. Kata kunci DISTINCT digunakan untuk mengalih keluar rekod pendua.
Sebagai contoh, jika anda ingin membuat pertanyaan untuk alamat e-mel pendua dalam jadual, anda boleh menggunakan pernyataan SQL berikut:
SELECT DISTINCT email FROM users GROUP BY email HAVING COUNT(*) > 1;
Pernyataan ini menggunakan kata kunci DISTINCT untuk mengalih keluar alamat e-mel pendua, dan kemudian gunakan pernyataan GROUP BY Group alamat e-mel yang sama dan kira setiap kumpulan. Jika hasil kiraan lebih besar daripada 1, ia adalah alamat e-mel pendua. Hasil pertanyaan akhir hanya termasuk alamat e-mel pendua.
3. Gunakan pernyataan SELF JOIN untuk menanyakan rekod pendua
Selain menggunakan pernyataan GROUP BY dan kata kunci DISTINCT, anda juga boleh menggunakan pernyataan SELF JOIN untuk menanyakan rekod pendua. Pernyataan SELF JOIN digunakan untuk menggabungkan rekod dalam jadual yang sama.
Sebagai contoh, jika anda ingin menanyakan alamat e-mel pendua dalam jadual, anda boleh menggunakan pernyataan SQL berikut:
SELECT u1.email FROM users u1 JOIN users u2 ON u1.email = u2.email AND u1.id <> u2.id;
Pernyataan ini menggunakan pernyataan SELF JOIN untuk menggabungkan rekod dengan rekod yang sama alamat e-mel dalam jadual yang sama. Dengan memenuhi syarat u1.email = u2.email dan u1.id a8093152e673feb7aba1828c43532094 pada masa yang sama, rekod pendua boleh ditemui. Hasil pertanyaan akhir hanya termasuk alamat e-mel pendua.
Di atas adalah beberapa kaedah untuk menanyakan rekod pendua dalam MySQL. Setiap kaedah mempunyai situasi yang terpakai. Hanya pilih kaedah yang sesuai untuk pertanyaan mengikut keperluan sebenar.
Atas ialah kandungan terperinci rekod pendua pertanyaan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!