ホームページ >データベース >mysql チュートリアル >mysql での存在の使用法は何ですか
mysql では、exists は、サブクエリが少なくとも 1 行のデータを返すかどうかを確認するために使用されます。サブクエリは実際にはデータを返しませんが、true または false を返します。構文は「SELECT field FROM table WHERE」です。 EXISTS (サブクエリ);"。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
mysql での存在の使用法は何ですか。
構文:
SELECT 字段 FROM table WHERE EXISTS (subquery);
パラメータ:
subquery制限付き SELECT ステートメント (COMPUTE 句と INTO キーワードは許可されません)
例:
SELECT * FROM A WHERE EXISTS (SELECT 1 FROM B WHERE B.id = A.id);
EXISTS 実行順序:
1. 最初に外部クエリを実行し、キャッシュしますSELECT * FROM A
2 などの結果セット。外部クエリ結果セット内のレコード R の各行を走査し、それをクエリ条件としてサブクエリに代入します (SELECT 1 FROM B WHERE B など)。 .id = A. id
3. サブクエリが結果を返す場合、EXISTS 句は TRUE を返します。この行 R は外部クエリの結果行として使用できますが、それ以外の場合は結果として使用できません
例は次のとおりです。
現在、3 つのテーブルがあるとします。
student: Student テーブル。フィールド sno は学生番号、sname は学生です。 name
course: コーステーブル。フィールド cno はコース番号、cname はコース名です。
student_course_relation: コース選択テーブル、学生が選択したコースを記録します。フィールド sno があります。は学生番号、cno はコース番号です
いくつかの例で EXISTS を説明しましょう NOT EXISTS の使用法と IN と NOT INNOT IN
1. サブクエリで NULL を使用しても戻り値が返されます結果セット
次の 3 つのケースは同じデータを返します。student テーブル内のすべてのデータ:
select * from student; select * from student where exists (select 1); select * from student where exists (select null);
2。EXISTS サブクエリはブール値 true または false
## を返します。 #EXISTS は、サブクエリが少なくとも 1 行のデータを返すかどうかを確認するために使用されます。サブクエリは実際にはデータを返しませんが、true または false のブール値を返します。EXISTS は、行の存在を検出するサブクエリを指定します。 EXISTS は、サブクエリにレコードがあるかどうかのみを考慮し、特定の結果セットとは関係ありません。したがって、次の例では、サブクエリの select sno を select cno または select 1 に置き換えることもできます。クエリによって取得される結果セットは同じです。 コース番号 3 を受講したすべての学生にクエリを実行します:select * from student a where exists (select sno from student_course_relation b where b.cno=3 and b.sno=a.sno); select * from student a where exists (select cno from student_course_relation b where b.cno=3 and b.sno=a.sno); select * from student a where exists (select 1 from student_course_relation b where b.cno=3 and b.sno=a.sno);推奨学習:
以上がmysql での存在の使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。