- Een of zelfs meer argumenten kunnen voorkomen.
- Voegt de argumenten samen en retourneert de resulterende tekenreeks.
- Als alle waarden niet-binaire tekenreeksen zijn, levert u een niet-binaire tekenreeks op.
- Levert een binaire string op als er binaire strings worden gebruikt in de argumenten.
- Als het numeriek is, wordt het ook vertaald naar zijn niet-binaire tekenreeksachtige vorm.
- Als elk argument NULL is, retourneert deze functie NULL.
Open de MySQL-opdrachtregelclientshell vanuit de applicaties en voeg uw wachtwoord toe wanneer u daarom vraagt.
Voorbeeld 01: Twee kolommen samenvoegen met CONCAT
We hebben een tabel 'leraar' in de database 'gegevens'. We willen de strings van twee kolommen "TeachName" en "lastname" associëren zonder een spatie ertussen.
Voer de opdracht SELECT CONCAT uit met kolomnamen tussen haakjes gescheiden door een komma. De nieuwe kolom 'Naam' wordt gegenereerd om de aaneengeschakelde tekenreekswaarden erin op te slaan en het resultaat wordt hieronder weergegeven:.
>> SELECTEER CONCAT (TeachName, achternaam) AS Name FROM data.leraar;
Voorbeeld 02: Twee kolommen samenvoegen met spatie
Stel dat we de onderstaande tabel "student" in de database "data" hebben en we willen de strings van twee kolommen "Naam" en "Onderwerp" combineren met spatie tussen de waarden.
Gebruik de onderstaande opdracht SELECT CONCAT terwijl u de namen van kolommen tussen haakjes opgeeft om de tekenreekswaarden te combineren, gescheiden door een spatie. De aaneengeschakelde waarden worden opgeslagen in een nieuwe kolom, "StudentDetail.” De resulterende kolom heeft nu alle aaneengeschakelde strings.
>> SELECTEER CONCAT(Naam,", Onderwerp) AS StudentDetail FROM data.leerling;
Voorbeeld 03: Meerdere kolommen samenvoegen met speciale tekens
Laten we aannemen dat de onderstaande tabel "leraar" tekenreekswaarden samenvoegt uit meer dan twee kolommen met een ander speciaal teken.
Probeer de onderstaande opdracht terwijl u het '-'-teken toevoegt in plaats van spatie. De resulterende set heeft de aaneengeschakelde kolom met tekenreeksen uit de tabelkolommen waarin speciale tekens worden gebruikt.
>> SELECTEER CONCAT (TeachName, '-', subject, '-', kwalificatie) AS Detail FROM data.leraar;
Voorbeeld 04: Samenvoegen tijdens het ophalen van extra kolommen
Als u de kolomreeksen wilt samenvoegen terwijl u andere kolommen in dezelfde query ophaalt, bent u hier aan het juiste adres. Beschouw de tabel "dieren" in de database "gegevens" hieronder.
We hebben de drie kolommen ervan aaneengeschakeld; "Kleur", "Naam" en "Geslacht" terwijl er tussenruimte en speciale tekens worden gebruikt. De aaneengeschakelde tekenreeks uit deze kolommen wordt opgeslagen in een nieuwe kolom, "AnimData". Aan de andere kant hebben we toegang gekregen tot de records van andere kolommen "Prijs" en "Leeftijd" uit deze tabel. De records worden opgehaald uit de rijen waar het geslacht van de dieren "M" is, betekent alleen voor mannen. U hebt de resultaten van aaneengeschakelde tekenreeksen uit verschillende kolommen, evenals andere kolommen die afzonderlijk zijn weergegeven.
>> SELECTEER CONCAT(Kleur,", Naam, '-', Geslacht) AS AnimData, Prijs, Leeftijd FROM data.dieren WAAR Geslacht = 'M';
Voorbeeld 05: Meer strings samenvoegen met kolomstrings
Als u tekenreeksen wilt toevoegen in plaats van speciale tekens of spaties, kunt u dat ook doen. Dus laten we een eenvoudig voorbeeld geven om dit te doen. Stel dat je een tabel "boek" hebt en je hebt de onderstaande gegevens met betrekking tot boeken, hun prijzen, auteurs, volumes en pagina's zoals weergegeven in de afbeelding. Nu zullen we de tekenreeksen uit de kolom "Naam", "Auteur" en "Prijs" samenvoegen met behulp van deze tabel.
We hebben de SELECT CONCAT-instructie gebruikt om strings uit de drie kolommen samen te voegen. Alle gegevens van deze tabel worden eerst gesorteerd in oplopende volgorde van kolom "Naam". Tussen haakjes hebben we "Het boek", "geschreven door" en "heeft prijs" als extra tekenreeksen in plaats van spatie of speciale tekens tussen aanhalingstekens. Nu neemt de CONCAT-functie de eerste omgekeerde kommawaarde "Het boek" samen met de waarde uit de kolom "Naam", dan de tweede omgekeerde kommawaarde 'geschreven door' gevolgd door de kolom "Auteur" tekenreekswaarde, en als laatste de derde omgekeerde kommawaarde "heeft prijs" gevolgd door de waarde van kolom 'Prijs'. Al deze strings en waarden uit de kolommen worden gecombineerd en het zal een volwaardige zin vormen make. Deze hele nieuwe megastringzin wordt opgeslagen in de nieuwe kolom "BookDetail".
>> SELECT CONCAT('Het boek', Naam, 'geschreven door', Auteur, 'heeft prijs', Prijs) AS BoekDetail FROM data.boek ORDER OP Naam ASC;
Voorbeeld 06: Kolomreeksen samenvoegen met CONCAT_WS
CONCAT_WS lijkt een unieke variant van de CONCAT-functie te zijn waarmee u kunt specificeren welk symbool (of tekens) als scheidingslijn met betrekking tot de aaneenschakeling van tekenreeksen zou worden weggelaten. Het is net zo eenvoudig als de eenvoudige CONCAT-functie. Laten we dus eens kijken naar de tabel "sociaal" in de MySQL-database met waarden over de gebruikers, hun meest gebruikte sociale-mediatoepassingen en de leeftijden van gebruikers. Nu zullen we de aaneenschakeling uitvoeren met behulp van de CONCAT_WS-functie.
In de onderstaande query hebben we drie kolommen aaneengeschakeld en dit aaneengeschakelde resultaat opgeslagen in de kolom "Detail". Zoals u kunt zien, is er iets anders, aangezien we enkele speciale tekens "***" hebben gedefinieerd in de aanhalingstekens vóór de kolomnamen. Dit komt omdat we deze speciale tekens tussen de reeksen van de kolommen willen toevoegen, de een na de ander met de functie CONTACT_WS. Dus uit dit scenario is het duidelijk dat we geen speciale tekens in de query hoeven te plaatsen na elke gespecificeerde kolom als het gaat om hetzelfde type teken.
>> SELECT CONCAT_WS('***', Gebruiker, Website, Leeftijd) AS Detail FROM data.sociaal;
Conclusie:
U bent nu effectief bekend met alle essentiële dingen over de aaneenschakeling van stringkolommen en hun waarden met behulp van de eenvoudige CONCAT-functie en de CONCAT_WS-functie in MySQL Shell.