Veröffentlicht 7. November 200717 j Hallo Gibt es eine Längenbegrenzung für die Liste Mit werten in der IN() Bedingung. Da bei einem UPDATE myTable SET SpalteX='wert' where id in(1,2,....,n) längere Angaben im IN Teil nicht Vollständig ausgeführt werden. Meine Vermutung ist, die Länge ist auf 1024 Zeichen begrenzt . Kann mir das jemand bestätigen? Gibt es möglichkeiten das zu umgehen? Mysql 5.0.32 Debian
7. November 200717 j Kann mir das jemand bestätigen? ist mir bis dato nichts bekannt; auch bei den MySQL-bugs hab ich diesbezüglich nichts gesehen. Gibt es möglichkeiten das zu umgehen? mach versuchsweise einen INNER JOIN statt eines SUBQUERY. s'Amstel
7. November 200717 j Inner joins und subquerys werden in diesem update statment nicht verwendet die Liste der werte wird im Programm generiert das einzige was machbar wäre für jeden wert das update einzeln ausführen was eine Längere Laufzeit des Programms zur folge hätte
7. November 200717 j Inner joins und subquerys werden in diesem update statment nicht verwendet die Liste der werte wird im Programm generiert das einzige was machbar wäre für jeden wert das update einzeln ausführen was eine Längere Laufzeit des Programms zur folge hätte Du baust in deinem Programm gewiss einen STRING zusammen den du dann als SQL-Befehl an deine Datenbank gibst !? Kann es sein, dass dieser STRING das Problem ist und nicht der SQL-Befehl !
7. November 200717 j Fehler gefunden es lag nicht an in() sondern an einem Group_concat in einer vorher verwendeten sql-anweisung
7. November 200717 j es gebit defitiv eine Beschränkung der in()-werte. Bei Oracle geht es nur bis 1000, bei 1001 schmeisst er ne fehlermeldung ... oder liegt es nur an meinem TOAD?
7. November 200717 j Nein das ist eine natürliche Grenze von Oracle. Und wer mehr als 1000 OR Verknüpfungen in seinem SQL hat, sollte sich doch mal überlegen, das ganze mit temporären Tabellen zu erledigen. Dim
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.