Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung von Beispielen für die Verwendung der Funktion group_concat() in MySQL

Detaillierte Erläuterung von Beispielen für die Verwendung der Funktion group_concat() in MySQL

零下一度
零下一度Original
2017-07-03 09:30:481158Durchsuche

Ich bin kürzlich auf ein Problem bei der Arbeit gestoßen:

Ein Teil der Logikverarbeitung in unserem System ist mithilfe gespeicherter Prozeduren implementiert, aber eines Tages meldete der Kundendienst, dass die Bestellung nicht aufgegeben werden konnte. Ich habe die Produkte überprüft Grundlegende Ressourcen, kein Problem.

Die gespeicherte Prozedur zum Aufgeben einer Bestellung enthält zwei Codezeilen:

1   declare _err int default 0;2   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;3   DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' set _err=2;

Nach der Ausführung der gespeicherten Prozedur gibt die Variable _err 1 zurück. Sie Um das Problem zu finden, kann nur die gespeicherte Prozedur debuggt werden. Beim Debuggen des folgenden Absatzes habe ich festgestellt, dass _err nach der Ausführung dieser SQL aufgrund der Daten in der temporären Tabelle

tmp_ord
er_detail zu 1
1 select group_concat(concat(@room_name,',',run_date,',',total_count) separator '|') into @order_desc from tmp_order_detail order by run_date;

wurde mehr, also vermutete ich, dass es ein Problem mit group_concat war, also reduzierte ich die Daten in der temporären Tabelle um die Hälfte und stellte fest, dass es erfolgreich war, also vermutete ich, ob group_concat eine Längenbeschränkung hatte, und googelte es, und tatsächlich.

Über die Funktion „group_concat“:

group_concat: Die standardmäßige verbindbare Länge beträgt 1024; wenn die maximale Länge festgelegt wurde, wird diese Länge überschritten Auf diese Länge gekürzt;

Nach der Verwendung von group_concat in der Abfrageanweisung (select) wird das Limit ungültig

Lösung:

1, Ändern Sie die MySQL-Konfigurationsdatei:

#需要设置的长度
group_concat_max_len = 5120

2. Sie können auch SQL-Anweisungseinstellungen verwenden:

SET GLOBAL group_concat_max_len=5120;SET SESSION group_concat_max_len=5120;

Ich habe die zweite Methode oben in der gespeicherten Prozedur verwendet, um die gespeicherte Prozedur auszuführen, OK, Erfolg!

Frei von der Arbeit (heute ist Sonntag)! ! !

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für die Verwendung der Funktion group_concat() in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Wie verwende ich natives JDBC?Nächster Artikel:Wie verwende ich natives JDBC?