Apabila membangunkan aplikasi web, selalunya diperlukan untuk mendapatkan semula data daripada pangkalan data. Semasa proses mendapatkan semula, kadangkala didapati terdapat sejumlah besar permintaan untuk data yang sama Pada masa ini, cara mengoptimumkan pertanyaan menjadi sangat penting. Artikel ini akan memperkenalkan cara mengendalikan pangkalan data untuk menanyakan data yang sama dalam PHP.
Menggunakan pernyataan GROUP BY dalam MySQL boleh mengumpulkan data mengikut nilai medan yang ditentukan, yang boleh membantu kami Statistik, pengiraan dan pertanyaan pantas pada data yang sama. Cara untuk menggunakan pernyataan GROUP BY dalam PHP adalah seperti berikut:
$sql = "SELECT count(*) as count, name FROM users GROUP BY name HAVING count > 1"; $result = mysqli_query($conn, $sql);
Kod di atas akan menanyakan pengguna dengan nama yang sama dari pangkalan data dan mengembalikan nombor mereka. Antaranya, pernyataan GROUP BY
digunakan untuk mengumpulkan, dan HAVING
digunakan untuk menapis data. Kaedah ini sesuai untuk senario di mana anda perlu menanyakan nilai atribut yang sama dan mengira hasilnya.
Kata kunci DISTINCT digunakan untuk memadam rekod pendua daripada set hasil pertanyaan Sintaks adalah seperti berikut:
SELECT DISTINCT column_name(s) FROM table_name;
Di mana column_name(s)
ialah nama medan dan table_name
ialah nama jadual. Jika hasil pertanyaan mengandungi kandungan yang sama, DISTINCT hanya akan mengembalikan kandungan sekali sahaja. Cara menggunakan DISTINCT dalam PHP adalah seperti berikut:
$sql = "SELECT DISTINCT email FROM users"; $result = mysqli_query($conn, $sql);
Kod di atas akan menanyakan senarai e-mel yang berbeza daripada pangkalan data Jika terdapat berbilang nilai e-mel yang sama dalam data, hanya satu nilai e-mel akan dikembalikan. Kaedah ini sesuai untuk menyoal data dengan ciri unik.
Menggunakan subkueri, juga dikenali sebagai pertanyaan bersarang, adalah untuk menghantar hasil satu pertanyaan sebagai input kepada pertanyaan lain. sedang berjalan. Apabila menanyakan data yang sama, subkueri boleh membantu kami menanyakan data sasaran dengan cepat. Kaedah subkueri yang digunakan dalam PHP adalah seperti berikut:
$sql = "SELECT name, age FROM users WHERE age IN (SELECT age FROM users GROUP BY age HAVING count(age) > 1)"; $result = mysqli_query($conn, $sql);
Kod di atas akan menanyakan pengguna dengan umur pendua daripada pangkalan data dan mengembalikan nama dan umur mereka. Dalam kes ini, semua nilai umur pendua ditemui dalam subkueri dan kemudian kata kunci IN
digunakan untuk mencari pengguna yang sepadan. Kaedah ini sesuai untuk data yang perlu disoal untuk nilai yang sama atau memenuhi syarat tertentu.
Ringkasan
Dalam PHP, menanyakan data yang sama boleh dicapai dengan menggunakan GROUP BY, DISTINCT atau subquery Pilihan setiap kaedah bergantung pada pertanyaan yang diperlukan keputusan. Menggunakan kaedah pertanyaan yang betul boleh meningkatkan kecekapan pertanyaan dan mengurangkan beban pada pelayan pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk mengendalikan pangkalan data untuk menanyakan data yang sama dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!