ホームページ >データベース >mysql チュートリアル >mysql での存在の使用法は何ですか

mysql での存在の使用法は何ですか

WBOY
WBOYオリジナル
2022-01-05 09:47:0230739ブラウズ

mysql では、exists は、サブクエリが少なくとも 1 行のデータを返すかどうかを確認するために使用されます。サブクエリは実際にはデータを返しませんが、true または false を返します。構文は「SELECT field FROM table WHERE」です。 EXISTS (サブクエリ);"。

mysql での存在の使用法は何ですか

このチュートリアルの動作環境: 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 ビデオ チュートリアル

以上がmysql での存在の使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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