In MySQL wird „exists“ verwendet, um zu überprüfen, ob die Unterabfrage mindestens eine Datenzeile zurückgibt, sondern „true“ oder „false“ zurückgibt. Die Syntax lautet „SELECT field FROM table WHERE EXISTS (subquery)“. ; ".
Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.
Was wird in MySQL verwendet?
Syntax:
SELECT 字段 FROM table WHERE EXISTS (subquery);
Parameter:
subquery ist eine eingeschränkte SELECT-Anweisung (COMPUTE-Klausel und INTO-Schlüsselwort sind nicht zulässig)
Beispiel:
SELECT * FROM A WHERE EXISTS (SELECT 1 FROM B WHERE B.id = A.id);
EXISTIERT Ausführungssequenz:
1. Führen Sie zuerst eine externe Abfrage aus und speichern Sie die Ergebnismenge, z. B. SELECT * FROM A
2. Durchlaufen Sie jede Datensatzzeile R in der externen Abfrageergebnismenge und ersetzen Sie sie als Bedingung B. SELECT 1 FROM B WHERE B.id = A.id
3. Wenn die Unterabfrage Ergebnisse zurückgibt, gibt die EXISTS-Klausel TRUE zurück. Diese Zeile R kann als Ergebniszeile der externen Abfrage verwendet werden kann nicht als Ergebnis verwendet werden. Beispiele sind wie folgt: Tabelle mit dem Feld cno als Kursnummer und cname als Kursname
student_course_relation: In der Kursauswahltabelle wird aufgezeichnet, welche Kurse die Studenten ausgewählt haben. Hier gibt es die Felder sno für die Studentennummer und cno für die Kursnummer Hier sind einige Beispiele, um die Verwendung von EXISTS und NOT EXISTS sowie ihre Unterschiede zu IN und NOT IN zu veranschaulichen.
1. Verwenden Sie NULL in der Unterabfrage und geben Sie trotzdem die Ergebnismenge zurück. Die folgenden drei Fälle geben alle dieselben Daten zurück Daten in der Schülertabelle werden zurückgegeben:
rrree2. Die EXISTS-Unterabfrage gibt einen booleschen Wert zurück, der wahr oder falsch ist. EXISTS wird verwendet, um zu überprüfen, ob die Unterabfrage mindestens eine Datenzeile zurückgibt. Die Unterabfrage gibt tatsächlich keine zurück Daten, gibt aber einen booleschen Wert von „true“ oder „false“ zurück. EXISTS gibt eine Unterabfrage an, um die Existenz einer Zeile zu erkennen.
EXISTS kümmert sich nur darum, ob Datensätze in der Unterabfrage vorhanden sind, und hat nichts mit der spezifischen Ergebnismenge zu tun. Daher kann im folgenden Beispiel „select sno“ in der Unterabfrage auch durch „select cno“ oder „select 1“ ersetzt werden Die Ergebnismenge wird dieselbe sein.
Fragen Sie alle Studenten ab, die Kurs Nummer 3 belegt haben:
select * from student; select * from student where exists (select 1); select * from student where exists (select null);
Empfohlenes Lernen:
MySQL-Video-TutorialDas obige ist der detaillierte Inhalt vonWas ist die Verwendung von Exits in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!