MySQL има CONCAT()
функция, която ви позволява да конкатенирате два или повече низа. Функцията всъщност позволява един или повече аргументи, но основната й употреба е да обединява два или повече низа.
В MySQL (и във всяка среда за компютърно програмиране) конкатенацията на низове е операция на свързване на низове от символи от край до край.
Ето един пример:
SELECT CONCAT('Homer', ' ', 'Simpson') AS 'Full Name';
Резултат:
+---------------+ | Full Name | +---------------+ | Homer Simpson | +---------------+
Имайте предвид, че всъщност свързах 3 низа тук. Свързах първото име, фамилното име плюс интервал.
Ако не добавих пространството, щеше да изглежда така:
SELECT CONCAT('Homer', 'Simpson') AS 'Full Name';
Резултат:
+--------------+ | Full Name | +--------------+ | HomerSimpson | +--------------+
Което може да бъде или не е резултатът, който търсите.
Така че, ако приложим това към база данни, тогава заявката може да изглежда така:
SELECT CONCAT(FirstName, ' ', LastName) AS 'Full Name' FROM Individuals WHERE IndividualId = '1';
Резултат:
+---------------+ | Full Name | +---------------+ | Homer Simpson | +---------------+
Ако свързвате повече от два низа и имате нужда от интервал (или друг разделител), помислете за използването на CONCAT_WS()
функция. Това ви позволява да зададете разделител, който да се използва между всеки низ. Трябва само веднъж да посочите разделителя и той се използва за всеки конкатениран низ, което ви спестява от необходимостта да го въвеждате отново между всеки низ.
NULL аргументи
CONCAT()
функцията връща NULL
ако някой аргумент е NULL
.
Пример:
SELECT CONCAT('Homer', NULL, 'Simpson') AS 'Full Name';
Резултат:
+-----------+ | Full Name | +-----------+ | NULL | +-----------+
Двоични низове срещу недвоични низове
Документацията на MySQL гласи:
Ако всички аргументи са недвоични низове, резултатът е недвоичен низ. Ако аргументите включват двоични низове, резултатът е двоичен низ. Цифров аргумент се преобразува в неговата еквивалентна форма на недвоичен низ.