MySQL IN Bedingungslimit


Antworten:


107

Nein, gibt es nicht, lesen Sie das Handbuch über die IN-Funktion :

Die Anzahl der Werte in der INListe ist nur durch den Wert max_allowed_packet begrenzt .


Wenn ich zum Beispiel ein Update mit habe where id IN (14000 ids), funktioniert es, bis die Update-Abfrage weniger als 64 MB beträgt (was der Standardwert ist), oder?
Oleg Abrazhaev

1
@OlegAbrazhaev Das INSchlüsselwort hat keine eingebauten Grenzen, es kann jedoch auch andere Grenzen geben, wie z. B. max_allowed_packetdie 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.
Progman

20

Soweit ich in MySQL weiß, gibt es keine Begrenzung für Elemente in der INAnweisung.

Im Orakel gibt es ein Limit von 1000 Elementen in der INAnweisung.

Bei mehr Elementen INwird Ihre Abfrageleistung jedoch langsamer, sofern diese Spalte nicht indiziert ist.


3
hängt davon ab, ob IN der
Suchprimärschlüssel

-2

Geben Sie hier die Bildbeschreibung ein

1073741824 Dies ist die in MySQL-Dokumenten angegebene Grenze

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.