sql >> Database >  >> RDS >> Mysql

Strings samenvoegen in MySQL met CONCAT()

MySQL heeft de CONCAT() functie, waarmee u twee of meer tekenreeksen kunt samenvoegen. De functie staat eigenlijk een of meer argumenten toe, maar het belangrijkste gebruik is om twee of meer strings samen te voegen.

In MySQL (en in elke computerprogrammeeromgeving) is tekenreeksaaneenschakeling de bewerking van het van begin tot eind samenvoegen van tekenreeksen.

Hier is een voorbeeld:

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

Resultaat:

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

Merk op dat ik hier eigenlijk 3 strings heb samengevoegd. Ik heb de voornaam, de achternaam en een spatie aaneengeschakeld.

Als ik de spatie niet had toegevoegd, zou het er zo hebben uitgezien:

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

Resultaat:

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

Wat wel of niet het resultaat is waarnaar u op zoek bent.

Dus als we dit toepassen op een database, dan zou de query er ongeveer zo uit kunnen zien:

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

Resultaat:

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

Als u meer dan twee tekenreeksen aaneenvoegt en u een spatie (of een ander scheidingsteken) nodig heeft, kunt u overwegen de CONCAT_WS() te gebruiken functie. Hiermee kunt u een scheidingsteken opgeven dat tussen elke tekenreeks moet worden gebruikt. U hoeft het scheidingsteken maar één keer op te geven en het wordt gebruikt voor elke tekenreeks die aaneengeschakeld is, zodat u het niet opnieuw hoeft te typen tussen elke tekenreeks.

NULL-argumenten

De CONCAT() functie retourneert NULL als een argument NULL is .

Voorbeeld:

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

Resultaat:

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

Binaire strings versus niet-binaire strings

In de MySQL-documentatie staat:

Als alle argumenten niet-binaire tekenreeksen zijn, is het resultaat een niet-binaire tekenreeks. Als de argumenten binaire tekenreeksen bevatten, is het resultaat een binaire tekenreeks. Een numeriek argument wordt geconverteerd naar zijn equivalente niet-binaire tekenreeksvorm.


  1. Hoe verbinding maken met MySQL op Amazon EC2 vanuit Windows?

  2. Hoe rijen dynamisch naar kolommen te transponeren in MySQL

  3. Wat is T-SQL?

  4. Hoe een bestaande Postgres-tabel zo transparant mogelijk naar een gepartitioneerde tabel migreren?