Heim >Datenbank >MySQL-Tutorial >Was bedeutet MySQL?
mysql in wird häufig in Where-Ausdrücken verwendet. Seine Verwendungssyntax ist beispielsweise „select * from where field in (value1, value2, value3,...)“.
Die Betriebsumgebung dieses Artikels: Windows 7-System, MySQL5.7, Dell G3.
MySQL in Was bedeutet das?
Detaillierte Erklärung der Verwendung von in in MySQL
1. Grundlegende Verwendung
in in MySQL wird häufig in Where-Ausdrücken verwendet und dient dazu, Daten darin abzufragen einen bestimmten Bereich.
select * from where field in (value1,value2,value3,…)
Wenn IN der NOT-Operator vorangestellt ist, bedeutet dies die entgegengesetzte Bedeutung zu IN, d unklar , die über eine Unterabfrage erhalten werden kann:
select * from where field not in (value1,value2,value3,…)
In diesem SQL-Beispiel haben wir die Methode implementiert, alle Artikel aller Benutzer zu finden, deren Status 0 ist (möglicherweise gesperrt). Rufen Sie zunächst alle Benutzer mit Status=0 über eine Abfrage ab:
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=0)
Verwenden Sie dann die Abfrageergebnisse als Listenelemente von IN, um die endgültigen Abfrageergebnisse zu erhalten. Beachten Sie, dass das in der Unterabfrage zurückgegebene Ergebnis ein Feldlistenelement sein muss.
Wir stoßen oft auf das Problem der geringen Abfrageeffizienz in der In-Unterabfrage.
1. Verwenden Sie weiterhin die In-Unterabfrage.
SELECT uid FROM user WHERE status=0
3 Betrieb Ergänzende Anweisungen
IN-Listenelemente unterstützen nicht nur Zahlen, sondern auch Zeichen und sogar Zeit- und Datumstypen. Diese verschiedenen Arten von Datenelementen können gemischt und angeordnet werden, ohne mit dem Spaltentyp übereinzustimmen:
SELECT * FROM basic_zdjbxx WHERE suiji IN ( SELECT zdcode FROM ( SELECT zdcode FROM basic_h WHERE zdcode != "" ) AS h )
Ein IN kann nur Wenn Sie mehrere Felder in einem Bereich vergleichen möchten, können Sie die logischen Operatoren AND oder OR verwenden:
SELECT zd.* FROM ( SELECT DISTINCT zdcode FROM basic_h WHERE zdcode != "" ) AS h LEFT JOIN basic_zdjbxx zd ON zd.suiji = h.zdcode
Nach der Verwendung der logischen Operatoren AND oder OR kann IN auch mit anderen Operatoren wie LIKE kombiniert werden , >=, = usw. werden zusammen verwendet.
4. Bezüglich der Effizienz des IN-Operators
Wenn die Listenelemente von IN sicher sind, können stattdessen mehrere ORs verwendet werden:
SELECT * FROM user WHERE uid IN(1,2,'3','c')
// Das Äquivalent ist:
SELECT * FROM user WHERE uid IN(1,2) OR username IN('admin','manong')
Es wird allgemein angenommen, dass:
1. Wenn Sie mit Indexfeldern arbeiten, ist die Verwendung von OR effizienter als IN. Wenn die Listenelemente jedoch unsicher sind (z. B. sind Unterabfragen erforderlich, um Ergebnisse zu erhalten), müssen Sie den IN-Operator verwenden. Wenn die Daten der Unterabfragetabelle kleiner als die der Hauptabfrage sind, ist außerdem auch der IN-Operator anwendbar.
2. Wenn in oder oder dem Feld kein Index hinzugefügt wird, ist die Abfrageeffizienz von oder umso geringer als die von in, je mehr Felder verbunden sind.
Empfohlenes Lernen: „
MySQL-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas bedeutet MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!