Dalam MySQL, ANY menyemak sama ada mana-mana baris yang dikembalikan oleh subquery memenuhi syarat, manakala SEMUA menyemak sama ada semua baris yang dikembalikan oleh subquery memenuhi syarat. Sebagai contoh, ANY mencari pelajar yang mempunyai sekurang-kurangnya satu gred melebihi 90, manakala SEMUA mencari pelajar yang hanya mempunyai gred melebihi 90 dalam semua kursus.
Perbezaan antara ANY dan ALL dalam MySQL
Dalam MySQL, ANY dan ALL ialah kata kunci yang digunakan dalam pertanyaan agregat untuk menyemak sama ada nilai yang dikembalikan oleh subquery memenuhi syarat tertentu. Perbezaan utama antara mereka ialah:
SEBARANG
SEMUA
Sebagai contoh
Andaikan kita mempunyai jadual skor pelajar dengan medan berikut:student_id
:学生 IDname
:学生姓名course_id
:课程 IDgrade
Untuk mencari semua pelajar dengan gred di atas 90, kami boleh menggunakan pertanyaan berikut:
<code class="sql">SELECT name FROM students WHERE ANY (SELECT grade FROM grades WHERE student_id = students.student_id) > 90;</code>
Pertanyaan ini akan Mengembalikan nama daripada semua pelajar yang mempunyai sekurang-kurangnya satu gred melebihi 90.
Untuk mencari hanya pelajar yang mendapat mata melebihi 90 dalam semua kursus mereka, kami boleh menggunakan pertanyaan berikut: <code class="sql">SELECT name
FROM students
WHERE ALL (SELECT grade FROM grades WHERE student_id = students.student_id) > 90;</code>
Atas ialah kandungan terperinci Perbezaan antara mana-mana dan semua dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!