MySQL MariaDB

MySQL kombinujte reťazcové stĺpce s funkciou CONCAT

MySQL kombinujte reťazcové stĺpce s funkciou CONCAT
Zreťazenie reťazcov v MySQL pomáha jednému pridať jeden reťazec na koniec druhého. Zreťazenie polí reťazca alebo databanky do solitérneho poľa v rámci výsledkovej sady je možné pomocou metód správy reťazcov MySQL. V rámci tejto príručky nájdete pri používaní metód MySQL CONCAT alebo CONCAT WS rôzne spôsoby spojenia dvoch alebo viacerých reťazcov súčasne.

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.

Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...
Hry Užitočné nástroje pre hráčov systému Linux
Užitočné nástroje pre hráčov systému Linux
Ak radi hráte hry v systéme Linux, je pravdepodobné, že ste na vylepšenie herného zážitku použili aplikácie a pomôcky ako Wine, Lutris a OBS Studio. O...
Hry HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
Mnoho vývojárov a vydavateľov hier prichádza s remastrom starých hier v rozlíšení HD, aby predĺžili životnosť franšízy. Prosím fanúšikov, ktorí požadu...