MySQL ma funkcję CONCAT()
funkcja, która pozwala na łączenie dwóch lub więcej ciągów. Funkcja faktycznie pozwala na jeden lub więcej argumentów, ale jej głównym zastosowaniem jest łączenie dwóch lub więcej ciągów.
W MySQL (i w dowolnym środowisku programowania komputerowego) konkatenacja ciągów jest operacją łączenia ciągów znaków od końca do końca.
Oto przykład:
SELECT CONCAT('Homer', ' ', 'Simpson') AS 'Full Name';
Wynik:
+---------------+ | Full Name | +---------------+ | Homer Simpson | +---------------+
Zauważ, że w rzeczywistości połączyłem tutaj 3 ciągi. Połączyłem imię, nazwisko i spację.
Gdybym nie dodał spacji, wyglądałoby to tak:
SELECT CONCAT('Homer', 'Simpson') AS 'Full Name';
Wynik:
+--------------+ | Full Name | +--------------+ | HomerSimpson | +--------------+
Który może, ale nie musi być wynikiem, którego szukasz.
Więc jeśli zastosujemy to do bazy danych, zapytanie może wyglądać mniej więcej tak:
SELECT CONCAT(FirstName, ' ', LastName) AS 'Full Name' FROM Individuals WHERE IndividualId = '1';
Wynik:
+---------------+ | Full Name | +---------------+ | Homer Simpson | +---------------+
Jeśli łączysz więcej niż dwa ciągi i potrzebujesz spacji (lub innego separatora), rozważ użycie CONCAT_WS()
funkcjonować. Pozwala to określić separator, który będzie używany pomiędzy każdym ciągiem. Musisz określić separator tylko raz i jest on używany w każdym połączonym ciągu, dzięki czemu nie musisz ponownie wpisywać go między każdym ciągiem.
Argumenty NULL
CONCAT()
funkcja zwraca NULL
jeśli jakikolwiek argument jest NULL
.
Przykład:
SELECT CONCAT('Homer', NULL, 'Simpson') AS 'Full Name';
Wynik:
+-----------+ | Full Name | +-----------+ | NULL | +-----------+
Ciągi binarne a ciągi niebinarne
Dokumentacja MySQL stwierdza:
Jeśli wszystkie argumenty są łańcuchami niebinarnymi, wynikiem jest łańcuch niebinarny. Jeśli argumenty zawierają jakiekolwiek ciągi binarne, wynikiem jest ciąg binarny. Argument numeryczny jest konwertowany na jego odpowiednik niebinarny w postaci łańcucha.