In MySQL wird in mit dem Where-Ausdruck verwendet, um Daten innerhalb eines bestimmten Bereichs abzufragen. Die Syntax lautet „select * from where field in (value)“ oder „select * from where field not in (value)“.
Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.
Was ist die Verwendung von in in MySQL?
in in MySQL wird häufig in Where-Ausdrücken verwendet und seine Funktion besteht darin, Daten innerhalb eines bestimmten Bereichs abzufragen.
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,…)
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. Die Lösung lautet wie folgt:1. Verwenden Sie weiterhin die In-Unterabfrage und fragen Sie noch einmal ab. SELECT uid FROM user WHERE status=0
. 3 . Ergänzende Anweisungen für den IN-Operator
SELECT * FROM basic_zdjbxx WHERE suiji IN ( SELECT zdcode FROM ( SELECT zdcode FROM basic_h WHERE zdcode != "" ) AS h )Ein IN kann nur einen Bereichsvergleich für ein Feld durchführen. Wenn Sie mehr Felder angeben möchten, können Sie die logischen Operatoren UND oder ODER verwenden:
SELECT zd.* FROM ( SELECT DISTINCT zdcode FROM basic_h WHERE zdcode != "" ) AS h LEFT JOIN basic_zdjbxx zd ON zd.suiji = h.zdcodeNach der Verwendung der logischen Operatoren UND oder ODER kann auch IN sein kombiniert mit anderen wie LIKE, >=, = usw. Operatoren werden zusammen verwendet. 4. Bezüglich der Effizienz des IN-OperatorsWenn 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 die von 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 kein Index zum Feld hinzugefügt wird, ist die Abfrageeffizienz von or umso geringer als die von in, je mehr Felder verbunden sind. 【Verwandte Empfehlungen:
MySQL-Video-Tutorial
】Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von in in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!