Funkcja grupy _Concat to grupa według funkcji agregatów, która umożliwia połączenie wartości kolumn z wielu wierszy w pojedynczym polu. Zwraca ciąg, jeśli grupa ustawiona zawiera jedną lub bez null wartości kolumny i zwraca wartość zerową, jeśli nie można znaleźć.
Ten samouczek nauczy Cię, jak używać funkcji MySQL grupy_concat () do łączenia ciągów z grupy z kilkoma opcjami.
Podstawowe użycie
Jak wspomnieliśmy, ta funkcja zwraca wynik łańcucha z wartościami połączonych wartości nie-zerowych lub null, jeśli nie istnieje.
Ogólna składnia to:
Grupa_concat ([odrębny] expr [, expr…]Wyjaśnienie
Z powyższej składni możesz zobaczyć, że funkcja grupy_concat używa klauzul i ograniczeń MySQL, aby określić różne opcje:
NOTATKA: Wynik ciągu generowany przez funkcję mysql grupy_concat () jest ograniczony do długości ustawionej wartości w zmiennej grupy_concat_max_len. Ta wartość jest zdefiniowana w systemie i ma wartość domyślną 1024. Możesz zmienić tę wartość na całym świecie lub ustawić ją w potrzebnej sesji.
Zestaw [globalny | Session] grupa_concat_max_len = wartość;Rozważ poniższe odniesienie, aby dowiedzieć się więcej:
https: // dev.Mysql.com/doc/refman/8.0/en/serwer-system.html#sysvar_group_concat_max_len
Jak to działa: przykład
Pozwól mi użyć prostego przykładu, aby wyjaśnić, jak działa funkcja grupy_concat (). Rozważ tabelę z polem dla char:
Utwórz tabelę (wartość char);Włóżmy wartości do tabeli, jak pokazano w pytaniu poniżej:
Wstaw do wartości (wartość) („h”), ('e'), ('l'), ('l'), ('o');Jeśli wykonamy podstawową operację grupy_concat na wartościach w tabeli, otrzymamy wynik ciągu, jak pokazano poniżej:
Wybierz grupę_concat (odrębna kolejność wartości według wartości separatora ASC „”) z Concat;Powstała wartość to:
+---------------------------------------------------------------+Czy chcesz inny sposób zrozumienia, co stało się z wynikiem podanym powyżej?
Zaczynamy od usunięcia wszystkich zduplikowanych wartości z powodu odrębnej klauzuli MySQL, która usuwa jedną L.
Następnie przechodzimy do zamówienia przez kolejność rosnącą zgodnie z definicją w (ASC), co zmienia ciąg w formie
Helo -> ehloNa koniec wykonujemy proces konkatenacji przy użyciu przestrzeni jako separatora dla wartości ustawionych, co powoduje ciąg e h l o z h, e, l, l o.
Przykład przypadków użycia
Weźmy prawdziwą bazę danych i użyj jej, aby zilustrować, w jaki sposób możemy zaimplementować funkcję grupy_concat (). W tym przykładzie użyjemy bazy danych Sakila, a konkretnie tabeli adresów z bazy danych Sakila.
Rozważ poniższy zasób, aby pobrać bazę danych dla swoich przykładów:
https: // dev.Mysql.com/doc/index-inni.html
W tabeli adresów bazy danych Sakila otrzymasz kolumnę okręgową. Możemy otrzymać wszystkie unikalne dzielnice oddzielone rurą, jak pokazano w zapytaniu poniżej:
Wybierz grupę_concat (odrębne zamówienie okręgowe według separatora okręgowego „|”) z Sakila.Limit adresu 5;Powyższe zapytanie wyświetli wszystkie odrębne dzielnice i zamów je w kolejności rosnącej oddzielonej rurą.
NOTATKA: Funkcja grupy_concat () jest funkcją łączną. Dlatego konieczne jest określenie kolejności według instrukcji w funkcji, a nie w instrukcji Select.
Wniosek
Funkcja MySQL Group_Concat () omówiona w tym samouczku jest przydatną funkcją, która pozwala tworzyć unikalne, posortowane i zorganizowane dane z tabeli, która może zawierać duplikaty i nieoprzeżone dane.
Zastanów się nad dokumentami lub innymi samouczkami MySQL, aby dowiedzieć się więcej.