ホームページ  >  記事  >  毎日のプログラミング  >  mysqlのanyとallの違い

mysqlのanyとallの違い

下次还敢
下次还敢オリジナル
2024-04-27 08:06:37627ブラウズ

MySQL では、ANY はサブクエリによって返された行が条件を満たすかどうかをチェックし、ALL はサブクエリによって返されたすべての行が条件を満たすかどうかをチェックします。たとえば、ANY は少なくとも 1 つの成績が 90 を超える学生を検索しますが、ALL はすべてのコースで 90 を超える成績のみを持つ学生を検索します。

mysqlのanyとallの違い

MySQLのANYとALLの違い

MySQLでは、ANYとALLは、サブクエリによって返された値が特定の条件を満たしているかどうかを確認するために集計クエリで使用されるキーワードです。それらの主な違いは次のとおりです。

ANY

  • サブクエリによって返された any 行が条件を満たすかどうかを確認します。
  • サブクエリが条件を満たす 少なくとも 1 つの行を返す場合、メイン クエリの条件は true を返します。

ALL

  • サブクエリによって返されたすべての 行が条件を満たすかどうかを確認します。
  • メインクエリの条件は、サブクエリによって返される
  • すべての行が条件を満たす場合にのみ true を返します。

たとえば、

次のフィールドを持つ生徒の成績表があるとします:

    student_id: 生徒 ID
  • student_id:学生 ID
  • name:学生姓名
  • course_id:课程 ID
  • gradename: 生徒の名前
course_id: コース ID

grade: 成績

成績が 90 を超えるすべての学生を検索するには、次のクエリを使用できます:

<code class="sql">SELECT name
FROM students
WHERE ANY (SELECT grade FROM grades WHERE student_id = students.student_id) > 90;</code>

このクエリは名前を返します。少なくとも 1 つの成績が 90 を超える全生徒のうち。

すべてのコースで 90 点を超えた学生のみを検索するには、次のクエリを使用できます:

<code class="sql">SELECT name
FROM students
WHERE ALL (SELECT grade FROM grades WHERE student_id = students.student_id) > 90;</code>
このクエリは、すべてのクラスで 90 点を超えた学生の名前のみを返します。

  • 概要
  • ANY
  • サブクエリの いずれかの行 が条件を満たすかどうかを確認します。
  • ALL
は、サブクエリの🎜すべての行🎜が条件を満たすかどうかをチェックします。 🎜🎜

以上がmysqlのanyとallの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。