МиСКЛ Гроуп Цонцат за жице

Mysql Group Concat Strings



ГРОУП _ЦОНЦАТ функција је агрегатна функција ГРОУП БИ која вам омогућава да повежете вредности колона из више редова у једно поље. Враћа стринг ако група скупова садржи једну или никакву вредност нулл колоне и враћа НУЛЛ вредност ако се не може пронаћи.

Овај водич ће вас научити како да користите функцију МиСКЛ ГРОУП_ЦОНЦАТ () за комбиновање низова из групе са неколико опција.







Основна употреба

Као што смо споменули, ова функција враћа резултат низа са вредностима спојених не-нулл вредности или НУЛЛ ако не постоји.



Општа синтакса је:



ГРОУП_ЦОНЦАТ ([ ДИСТИНЦТ ]експр[,експр ...]
[ НАРУЧИ ПО експр
[ АСЦ | ДЕСЦ ] [,цол_наме ...]]
[СЕПАРАТОР стр_вал])

Објашњење

Из горње синтаксе можете видети да функција ГРОУП_ЦОНЦАТ користи МиСКЛ клаузуле и ограничења за спецификацију различитих опција:





  1. РАЗЛИКУЈТЕ: Клаузула ДИСТИНЦТ помаже у уклањању дуплираних вредности у групи скупа пре процеса повезивања. Размислите о нашем водичу који објашњава МиСКЛ ДИСТИНЦТ да бисте разумели како то функционише.
  2. НАРУЧИ: Следећа клаузула је ОРДЕР БИ која помаже сортирању вредности по наведеном редоследу. Редослед може бити растући или опадајући. Ако није наведен редослед, МиСКЛ форматира вредности у растућем редоследу.
  3. СЕПАРАТОР : Ова клаузула поставља низ знакова који је уметнут између вредности групе током процеса повезивања. Подразумевано, МиСКЛ користи зарез (,) за одвајање вредности.

БЕЛЕШКА: Резултатски низ генерисан МиСКЛ ГРОУП_ЦОНЦАТ () функцијом ограничен је на дужину вредност подешену у променљивој гроуп_цонцат_мак_лен. Ова вредност је дефинисана у систему и има подразумевану вредност 1024. Ову вредност можете променити глобално или поставити у сесији која вам је потребна.

КОМПЛЕТ [ ГЛОБАЛНО | СЕДНИЦА ]гроуп_цонцат_мак_лен= вредност ;

Размотрите доње референце да бисте сазнали више:



хттпс://дев.мискл.цом/доц/рефман/8.0/ен/сервер-систем-вариаблес.хтмл#сисвар_гроуп_цонцат_мак_лен

Како то функционише: Пример

Дозволите ми да на једноставном примеру објасним како функционише функција ГРОУП_ЦОНЦАТ (). Размотрите табелу са пољем за ЦХАР као:

КРЕИРАЈ СТО цонцат ( вредност ЦХАР );

Убацимо вредности у табелу као што је приказано у доњем упиту:

ИНСЕРТ У цонцат ( вредност ) ВРЕДНОСТИ ('Х'),('И'),('ТХЕ'),('ТХЕ'),('ИЛИ');

Ако изведемо основну операцију ГРОУП_ЦОНЦАТ над вредностима у табели, добићемо резултат низа као што је приказано испод:

СЕЛЕЦТ ГРОУП_ЦОНЦАТ ( ДИСТИНЦТ вредност НАРУЧИ ПО вредност АСЦ СЕПАРАТОР'') ФРОМ цонцат ;

Добијена вредност је:

+ ------------------------------------------------- -------------- +
| ГРОУП_ЦОНЦАТ ( ДИСТИНЦТ вредност НАРУЧИ ПО вредност АСЦ СЕПАРАТОР'') |
+ ------------------------------------------------- -------------- +
|Е Х Л О|
+ ------------------------------------------------- -------------- +
1ред у комплет (0,01сец)

Да ли желите други начин да разумете шта се догодило са горе наведеним резултатом?

Почињемо уклањањем свих дуплицираних вредности због МиСКЛ ДИСТИНЦТ клаузуле која уклања један Л.

Затим прелазимо на ОРДЕР БИ растућим редоследом како је дефинисано у (АСЦ), што мења стринг у облику

ХЕЛО->ЕХЛО

Коначно, извршавамо процес повезивања користећи размак као сепаратор за задате вредности, што резултира низом Е Х Л О из {Х, Е, Л, Л О}.

Примери употребе

Узмимо стварну базу података и употребимо је за илустрацију како можемо имплементирати функцију ГРОУП_ЦОНЦАТ (). У овом примеру користићемо базу података Сакила, а посебно табелу адреса из базе података Сакила.

Размотрите доњи ресурс за преузимање базе података за своје примере:

хттпс://дев.мискл.цом/доц/индек-отхер.хтмл

У табели адреса базе података Сакила добићете колону округа. Све јединствене округе можемо раздвојити цевчицом као што је приказано у доњем упиту:

СЕЛЕЦТ ГРОУП_ЦОНЦАТ ( ДИСТИНЦТ округу НАРУЧИ ПО округ СЕПАРАТОР'|') ФРОМ сакила.адреса ЛИМИТ 5;

Горњи упит ће приказати све ДИСТИНЦТ округе и поређати их узлазним редоследом раздвојеним цевчицом.

БЕЛЕШКА: Функција ГРОУП_ЦОНЦАТ () је збирна функција. Због тога је потребно да у функцији наведете ОРДЕР БИ израз, а не у СЕЛЕЦТ изразу.

Закључак

МиСКЛ ГРОУП_ЦОНЦАТ () функција о којој се говори у овом водичу је корисна функција која вам омогућава да креирате јединствене, сортиране и организоване податке из табеле која може да садржи дупликате и неуређене податке.

Размотрите документе или наше друге МиСКЛ водиче да бисте сазнали више.