Perbezaan antara mana-mana dan semua dalam mysql

下次还敢
Lepaskan: 2024-04-27 08:06:37
asal
638 orang telah melayarinya

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 mana-mana dan semua dalam mysql

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

  • Menyemak sama ada mana-mana mana-mana baris yang dikembalikan oleh subkueri memenuhi syarat.
  • Jika subkueri kembali sekurang-kurangnya satu baris yang memenuhi syarat, syarat pertanyaan utama kembali benar.

SEMUA

  • Menyemak sama ada semua ​​baris yang dikembalikan oleh subquery memenuhi syarat.
  • Syarat pertanyaan utama kembali benar hanya apabila
  • semua baris dikembalikan oleh subkueri memenuhi syarat.

Sebagai contoh

Andaikan kita mempunyai jadual skor pelajar dengan medan berikut:

    id_pelajar: ID pelajar
  • student_id:学生 ID
  • name:学生姓名
  • course_id:课程 ID
  • gradenama: nama pelajar
id_kursus: ID Kursus

gred: Gred

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

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>
Salin selepas log masuk
Pertanyaan ini hanya akan mengembalikan nama pelajar yang mendapat mata melebihi 90 dalam semua kelas mereka.

  • Ringkasan
  • SEBARANG
  • Semak sama ada mana-mana mana-mana baris subquery memenuhi syarat.
  • SEMUA
menyemak sama ada 🎜semua baris🎜 subquery memenuhi syarat. 🎜🎜

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!

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