sql >> Database teknologi >  >> RDS >> Mysql

Sådan sammenkædes strenge i MySQL med CONCAT()

MySQL har CONCAT() funktion, som giver dig mulighed for at sammenkæde to eller flere strenge. Funktionen tillader faktisk et eller flere argumenter, men dens hovedanvendelse er at sammenkæde to eller flere strenge.

I MySQL (og i ethvert computerprogrammeringsmiljø) er strengsammenkædning operationen med at forbinde tegnstrenge ende-til-ende.

Her er et eksempel:

SELECT CONCAT('Homer', ' ', 'Simpson') AS 'Full Name';

Resultat:

+---------------+
| Full Name     |
+---------------+
| Homer Simpson |
+---------------+

Bemærk, at jeg faktisk sammenkædede 3 strenge her. Jeg sammenkædede fornavnet, efternavnet plus et mellemrum.

Hvis jeg ikke tilføjede pladsen, ville det have set sådan ud:

SELECT CONCAT('Homer', 'Simpson') AS 'Full Name';

Resultat:

+--------------+
| Full Name    |
+--------------+
| HomerSimpson |
+--------------+

Hvilket måske eller måske ikke er det resultat, du leder efter.

Så hvis vi anvender dette på en database, kan forespørgslen se nogenlunde sådan ud:

SELECT CONCAT(FirstName, ' ', LastName) AS 'Full Name'
FROM Individuals
WHERE IndividualId = '1';

Resultat:

+---------------+
| Full Name     |
+---------------+
| Homer Simpson |
+---------------+

Hvis du sammenkæder mere end to strenge, og du har brug for et mellemrum (eller en anden separator), kan du overveje at bruge CONCAT_WS() fungere. Dette giver dig mulighed for at angive en separator, der skal bruges mellem hver streng. Du behøver kun at angive separatoren én gang, og den bruges på hver streng, der er sammenkædet, hvilket sparer dig for at skulle genindtaste den mellem hver streng.

NULL-argumenter

CONCAT() funktion returnerer NULL hvis et argument er NULL .

Eksempel:

SELECT CONCAT('Homer', NULL, 'Simpson') AS 'Full Name';

Resultat:

+-----------+
| Full Name |
+-----------+
| NULL      |
+-----------+

Binære strenge vs ikke-binære strenge

MySQL-dokumentationen siger:

Hvis alle argumenter er ikke-binære strenge, er resultatet en ikke-binær streng. Hvis argumenterne inkluderer binære strenge, er resultatet en binær streng. Et numerisk argument konverteres til dets tilsvarende ikke-binære strengform.


  1. Hvordan indstilles timeren til at kalde en funktion hvert n minut?

  2. To kolonner i underforespørgsel i where-klausul

  3. SQL OVER()-sætningen - hvornår og hvorfor er den nyttig?

  4. Sådan opretter du en databasemodel fra bunden