MYSQL CONCAT MAX LÄNGE

8

Nach diesem Beitrag: POST ÜBER CONCAT Mein Problem ist, dass ich viele Zeilen CONCAT in einer Zeile habe. Zum Beispiel, wenn ich 10 Zeilen mit einer Zeichenfolge um 50 Zeichen habe, zeigt meine Abfrage nur 6-7 dieser Zeilen oder so ähnlich. Ich searech im Stapel und google und ich fand, dass ich CONCAT maximale Länge durch Befehl ändern kann: SET group_concat_max_len := @@max_allowed_packet . Was mache ich falsch?

BEARBEITEN: Wenn ich SHOW VARIABLES LIKE 'group_concat_max_len' zeige, zeigt es mir 1024. Mysql Version 5.0.96-log. Tabellentyp: MyISAM. Sieht so aus, als hätte es keine Grenzen. Ich versuche, ein einfaches varchar mit 2000 Zeichen zu wählen, und es sieht gut aus. Ich habe 3 Tabellen: 1st - Item mit ItemID, 2nd - Descriptionpack mit ItemID und DescriptionID, 3rd Description mit DescriptionID.

Select DISTINCT Item.ItemID as item ,GROUP_CONCAT(Description.DescriptionID) AS description From Item LEFT OUTER JOIN descriptionpack on Item.ItemID=descriptionpack.ItemID LEFT OUTER JOIN description on descriptionpack.descriptionID=description.descriptionID GROUP BY item

EDIT2: Ich glaube, ich habe das Problem gefunden, ich habe mein Problem mit meinem Provider gesagt und sie antworten mir:

  

Ich habe Ihre Frage mit unserem Hosting-Team besprochen. Du würdest es nicht können   um die globalen Einstellungen für diese und andere Variablen zu ändern. Jedoch,   Sie sollten in der Lage sein, diese Variable für jede Sitzung einzeln festzulegen   Setzen Sie es zuerst, vor anderen Abfragen. Ich hoffe, das hilft.

Also jetzt ist das Problem, wie man das macht.

    
Crackeraki 03.01.2014, 18:15
quelle

2 Antworten

20

Vermutlich verwenden Sie GROUP_CONCAT() , nicht einfach CONCAT() .

Der Standardwert von group_concat_max_len ist 1024, was eine ziemlich kleine Grenze ist, wenn Sie große lange Verkettungen aufbauen.

Um es zu ändern, verwenden Sie diesen Befehl. Ich habe die Länge in diesem Beispiel auf 100.000 festgelegt. Sie könnten es auf alles einstellen, was Sie brauchen.

%Vor%

Der übliche Wert für max_allowed_packet ist ein Megabyte, was wahrscheinlich mehr ist, als Sie benötigen.

group_concat_max_len selbst hat eine unbegrenzte Größe . Es ist nur durch die vorzeichenlose Wortlänge der Plattform begrenzt: 2 ^ 32-1 auf einer 32-Bit-Plattform und 2 ^ 64-1 auf einer 64-Bit-Plattform.

Wenn das immer noch nicht genug für Ihre Bewerbung ist, ist es an der Zeit, @ uggyals Vorschlag zu nehmen und Ihre Herangehensweise zu überdenken.

    
O. Jones 03.01.2014, 20:04
quelle
0
%Vor%     
Reena Mori 14.06.2017 07:34
quelle