Grupa MySQL Conat for Strings

Grupa MySQL Conat for Strings

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…]
[Zamów przez unsigned_integer | col_name | expr
[ASC | Desc] [, col_name…]]
[Separator str_val])

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:

  1. ODRĘBNY: Odrębna klauzula pomaga usunąć zduplikowane wartości w grupie zestawu BEF0RE Proces konatenacji. Rozważ nasz samouczek wyjaśniający MySQL odrębny, aby zrozumieć, jak to działa.
  2. ZAMÓW PRZEZ: Następna klauzula to kolejność, która pomaga sortować wartości w określonej kolejności. Zamówienie może być wznoszące się lub schodzące. Jeśli nie zostanie określona żadna kolejność, mysql formatuje wartości w kolejności rosnącej.
  3. SEPARATOR: Ta klauzula ustawia literał strefy włożony między wartościami grupy do procesu konatenacji. Domyślnie MySQL używa przecinka (,) do oddzielenia wartości.

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:

+---------------------------------------------------------------+
|. Grupa_concat (odrębna kolejność wartości według wartości separatora ASC „”) |
+---------------------------------------------------------------+
|. E H L O |
+---------------------------------------------------------------+
1 wiersz w zestawie (0.01 s)

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 -> ehlo

Na 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.