Hey, ich muss die IN-Bedingung in meiner MySQL-Anweisung mit einer großen Anzahl von IDs verwenden.
Beispiel
SELECT * FROM users WHERE id IN (1,2,3,4...100000)
Gibt es ein Limit für Elemente, die die IN-Anweisung haben kann?
mysql
conditional-statements
xpepermint
quelle
quelle
Antworten:
Nein, gibt es nicht, lesen Sie das Handbuch über die IN-Funktion :
quelle
where id IN (14000 ids)
, funktioniert es, bis die Update-Abfrage weniger als 64 MB beträgt (was der Standardwert ist), oder?IN
Schlüsselwort hat keine eingebauten Grenzen, es kann jedoch auch andere Grenzen geben, wie z. B.max_allowed_packet
die indirekte Begrenzung der Anzahl der Werte. Wenn Sie diesen Wert auf 1024 (Byte) setzen, können Sie effektiv nur eine begrenzte Anzahl von Werten verwenden.Soweit ich in MySQL weiß, gibt es keine Begrenzung für Elemente in der
IN
Anweisung.Im Orakel gibt es ein Limit von 1000 Elementen in der
IN
Anweisung.Bei mehr Elementen
IN
wird Ihre Abfrageleistung jedoch langsamer, sofern diese Spalte nicht indiziert ist.quelle
1073741824 Dies ist die in MySQL-Dokumenten angegebene Grenze
quelle