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?
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?
Antworten:
Nein, gibt es nicht, lesen Sie das Handbuch über die IN-Funktion :
Die Anzahl der Werte in der
IN
Liste ist nur durch den Wert max_allowed_packet begrenzt .
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.