- Môže sa vyskytnúť jeden alebo viac argumentov.
- Zreťazí argumenty a vráti výsledný reťazec.
- Keď sú všetky hodnoty nebinárne reťazce, získa sa nebinárny reťazec.
- Ak sa v argumentoch použijú akékoľvek binárne reťazce, získa binárny reťazec.
- Ak je číselný, prekladá sa tiež do podoby ne-binárneho reťazca.
- Ak má každý argument hodnotu NULL, táto funkcia vráti hodnotu NULL.
Otvorte z aplikácií shell klienta príkazového riadku MySQL a na požiadanie zadajte svoje heslo.
Príklad 01: Spojte dva stĺpce pomocou CONCAT
V databáze „dáta“ máme tabuľku „učiteľ“. Chceme spojiť jeho reťazce z dvoch stĺpcov „TeachName“ a „lastname“ bez medzery medzi nimi.
Vykonajte príkaz SELECT CONCAT s názvami stĺpcov v zátvorkách oddelenými čiarkou. Nový stĺpec „Názov“ sa vygeneruje, aby sa do neho uložili zreťazené hodnoty reťazca, a výsledok sa zobrazuje nižšie.
>> VYBERTE KONCAT (TeachName, priezvisko) AKO Meno Z údajov.učiteľ;
Príklad 02: Spojte dva stĺpce s medzerou
Predpokladajme, že máme v databáze „data“ nasledujúcu tabuľku „student“ a chceme spojiť jej reťazce z dvoch stĺpcov „Name“ a „Subject“ s medzerou medzi hodnotami.
Pomocou nižšie uvedeného príkazu SELECT CONCAT zadajte názvy stĺpcov v zátvorkách a kombinujte hodnoty reťazcov oddelené medzerou. Zreťazené hodnoty sa uložia do nového stĺpca „StudentDetail.„Výsledný stĺpec má teraz všetky zreťazené reťazce.
>> VYBERTE KONCAT (Meno, ", Predmet) AS StudentDetail Z údajov.študent;
Príklad 03: Zreťazenie viacerých stĺpcov so špeciálnymi znakmi
Predpokladajme, že v nasledujúcej tabuľke „učiteľ“ spojíme reťazcové hodnoty z viac ako dvoch stĺpcov s iným špeciálnym znakom.
Vyskúšajte nasledujúci príkaz a namiesto medzery pridajte znak „-“. Výsledná množina má zreťazený stĺpec reťazcov zo stĺpcov tabuľky, v ktorom sú použité špeciálne znaky.
>> VYBERTE KONCAT (TeachName, '-', predmet, '-', kvalifikácia) AS Detail Z údajov.učiteľ;
Príklad 04: Zreťazenie pri načítaní ďalších stĺpcov
Ak chcete zreťaziť reťazce stĺpcov pri načítaní ďalších stĺpcov v rovnakom dotaze, ste na správnom mieste. Zvážte tabuľku „zvieratá“ v databáze „údaje“ nižšie.
Zreťazili sme jeho tri stĺpce; „Farba“, „Meno“ a „Pohlavie“, zatiaľ čo medzi nimi používate medzeru a špeciálne znaky. Zreťazený reťazec z týchto stĺpcov sa uloží do nového stĺpca „AnimData“. Na druhej strane sme z tejto tabuľky pristupovali k záznamom ďalších stĺpcov „Cena“ a „Vek“. Záznamy sa budú načítať z riadkov, kde je pohlavie zvierat „M“ znamená iba pre mužov. Máte výsledky zreťazených reťazcov z rôznych stĺpcov, ako aj z iných stĺpcov, ktoré sa zobrazili osobitne.
>> VYBERTE KONCAT (Farba, ", Názov, '-', Pohlavie) AKO AnimData, Cena, Vek Z údajov.zvieratá KDE pohlavie = „M“;
Príklad 05: Zreťazte viac reťazcov pomocou reťazcov stĺpcov
Ak chcete namiesto špeciálnych znakov alebo medzier pridať reťazce, môžete to urobiť tiež. Poďme si teda urobiť jednoduchý príklad. Predpokladajme, že máte tabuľku „kniha“ a že máte nižšie uvedené údaje týkajúce sa kníh, ich cien, autorov, ročníkov a stránok, ako je to znázornené na obrázku. Teraz pomocou tejto tabuľky zreťazíme reťazce zo stĺpca „Názov“, „Autor“ a „Cena“.
Na zreťazenie reťazcov z troch stĺpcov sme používali príkaz SELECT CONCAT. Všetky údaje tejto tabuľky sú najskôr zoradené vzostupne v stĺpci „Názov“. V zátvorkách sme namiesto medzery alebo špeciálnych znakov v obrátených čiarkach uviedli „knihu“, „napísal“ a „má cenu“ ako ďalšie reťazce. Teraz funkcia CONCAT vezme prvú hodnotu obrátenej čiarky „Kniha“ spolu s hodnotou zo stĺpca „Názov“, potom druhú hodnotu obrátenej čiarky „napísal“, za ktorou nasleduje stĺpec „Autor“, hodnota reťazca a nakoniec tretia hodnota obrátenej čiarky „má cenu“, za ktorou nasleduje hodnota v stĺpci „Cena“. Všetky tieto reťazce a hodnoty zo stĺpcov sa skombinujú a vytvorí sa z nich úplná úsudková veta. Celá táto nová veta s veľkým reťazcom bude uložená v novom stĺpci „BookDetail“.
>> VYBERTE KONCAT ('Kniha', Meno, 'napísal', Autor, 'Má cenu', Cena) AS BookDetail Z údajov.kniha OBJEDNAŤ NA Meno ASC;
Príklad 06: Zreťazenie reťazcov stĺpca pomocou CONCAT_WS
CONCAT_WS sa javí ako jedinečná varianta funkcie CONCAT, ktorá umožňuje určiť, ktorý symbol (alebo znaky) by sa mal použiť ako oddeľovač v súvislosti so zreťazením reťazca. Je to také jednoduché ako jednoduchá funkcia CONCAT. Uvažujme teda, že tabuľka „sociálna“ v databáze MySQL obsahuje hodnoty o používateľoch, ich najpoužívanejších aplikáciách v sociálnych médiách a veku používateľov. Teraz vykonáme zreťazenie pomocou funkcie CONCAT_WS.
V dotaze nižšie sme zreťazili tri stĺpce a tento zreťazený výsledok sme uložili do stĺpca „Detail“. Ako môžete vidieť, je tu niečo iné, pretože sme pred invertovanými čiarkami pred názvami stĺpcov definovali niektoré špeciálne znaky „***“. Je to tak preto, lebo chceme pridať tieto špeciálne znaky medzi reťazce stĺpcov prichádzajúce jeden za druhým pomocou funkcie CONTACT_WS. Z tohto scenára je teda zrejmé, že nemusíme do dotazu vkladať špeciálne znaky po každom zadanom stĺpci, pokiaľ ide o rovnaký typ znaku.
>> ZVOLTE CONCAT_WS ('***', používateľ, web, vek) AKO DETAILNÝ údaj.sociálne;
Záver:
Vďaka jednoduchej funkcii CONCAT a funkcii CONCAT_WS v MySQL Shell ste teraz skutočne erudovaní na všetky podstatné veci týkajúce sa zreťazenia stĺpcov reťazcov a ich hodnôt.