Rumah  >  Artikel  >  pangkalan data  >  pertanyaan mysql untuk rekod pendua

pertanyaan mysql untuk rekod pendua

WBOY
WBOYasal
2023-05-23 10:24:072775semak imbas

Dalam pangkalan data MySQL, pertanyaan untuk rekod pendua adalah keperluan yang sangat biasa Artikel ini akan memperkenalkan cara menggunakan SQL untuk membuat pertanyaan untuk rekod pendua.

Secara umumnya, anda boleh menggunakan pernyataan GROUP BY dan HAVING untuk menanyakan rekod pendua dalam MySQL. Mari perkenalkan secara terperinci di bawah.

1. Gunakan GROUP BY dan HAVING

Menggunakan pernyataan GROUP BY dan HAVING boleh membuat pertanyaan untuk rekod pendua dengan mudah adalah seperti berikut:

SELECT column_name1, column_name2, ... column_nameN, COUNT(*)
FROM table_name
GROUP BY column_name1, column_name2, ... column_nameN
HAVING COUNT(*) > 1;

Di mana, , column_name1, column_name2 ialah nama medan yang anda ingin tanya, column_nameN ialah nama jadual yang anda ingin tanya, COUNT(table_name) ialah bilangan nilai berulang, HAVING COUNT( ) > 1 menunjukkan bahawa hanya rekod dengan nilai pendua lebih daripada sekali diambil semula.

Sebagai contoh, kami mempunyai jadual bernama pelajar, yang mengandungi dua medan id dan nama Sekarang kami ingin menanyakan semua nama pendua Kami boleh menggunakan pernyataan SQL berikut:

SELECT name, COUNT(*)
FROM students
GROUP BY name
HAVING COUNT(*) > 1;

Di atas Kenyataan SQL akan menanyakan semua nama berulang dan masanya.

2. Gunakan subkueri dan jadual sementara

Menggunakan subkueri dan jadual sementara juga boleh membuat pertanyaan untuk rekod pendua:

SELECT id, name
FROM students
WHERE name IN (
  SELECT name
  FROM students
  GROUP BY name
  HAVING COUNT(*) > 1
);

SQL di atas penyata akan menanyakan semua rekod pendua, di mana id dan nama ialah nama medan yang hendak disoal, pelajar ialah nama jadual untuk disoal, dan nama WHERE IN (...) mewakili semua rekod pendua yang ditanya dalam subkueri. nama .

Ringkasan:

Artikel ini memperkenalkan kaedah menggunakan penyata GROUP BY dan HAVING serta subkueri dan jadual sementara untuk menanyakan rekod pendua Pembaca boleh memilih kaedah yang berbeza mengikut situasi sebenar untuk lebih baik memahami keadaan. Di samping itu, dalam aplikasi praktikal, untuk meningkatkan prestasi, anda juga perlu memberi perhatian kepada penggunaan medan pertanyaan dan indeks.

Atas ialah kandungan terperinci pertanyaan mysql untuk rekod pendua. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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