MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak działa funkcja CONCAT() w MariaDB

W MariaDB CONCAT() jest wbudowaną funkcją ciągu, która wykonuje konkatenację ciągów na swoich argumentach. Zwraca ciąg, który wynika z połączenia jego argumentów.

Konkatenacja to operacja łączenia dwóch lub więcej ciągów od końca do końca.

CONCAT() akceptuje jeden lub więcej argumentów, z których wszystkie są zwracane jako jeden połączony ciąg.

Składnia

Składnia wygląda tak:

CONCAT( str1, str2, ... )

Gdzie str1, str2, … reprezentują argumenty ciągu, dla których należy łączyć.

Przykład

Oto podstawowy przykład:

SELECT CONCAT('Homer', 'Jay');

Wynik:

+------------------------+
| CONCAT('Homer', 'Jay') |
+------------------------+
| HomerJay               |
+------------------------+

W tym przypadku połączyliśmy dwa ciągi.

I znowu, ale tym razem dodajemy spację pomiędzy:

SELECT CONCAT('Homer', ' ', 'Jay');

Wynik:

+-----------------------------+
| CONCAT('Homer', ' ', 'Jay') |
+-----------------------------+
| Homer Jay                   |
+-----------------------------+

W tym przypadku połączyliśmy trzy ciągi.

Oto pięć:

SELECT CONCAT('Homer', ' ', 'Jay', ' ', 'Simpson');

Wynik:

+---------------------------------------------+
| CONCAT('Homer', ' ', 'Jay', ' ', 'Simpson') |
+---------------------------------------------+
| Homer Jay Simpson                           |
+---------------------------------------------+

Ciągi binarne

Jeśli którykolwiek z argumentów jest ciągiem binarnym, wynikiem jest ciąg binarny:

SELECT CONCAT(BINARY 'Homer', 'Jay');

Wynik:

+-------------------------------+
| CONCAT(BINARY 'Homer', 'Jay') |
+-------------------------------+
| HomerJay                      |
+-------------------------------+

Możemy użyć COLLATION() funkcja sprawdzania sortowania wyniku:

SELECT COLLATION(CONCAT(BINARY 'Homer', 'Jay'));

Wynik:

+------------------------------------------+
| COLLATION(CONCAT(BINARY 'Homer', 'Jay')) |
+------------------------------------------+
| binary                                   |
+------------------------------------------+

Jeśli usuniemy BINARY operatora, otrzymujemy inny wynik:

SELECT COLLATION(CONCAT('Homer', 'Jay'));

Wynik:

+-----------------------------------+
| COLLATION(CONCAT('Homer', 'Jay')) |
+-----------------------------------+
| utf8_general_ci                   |
+-----------------------------------+

Ponadto, zgodnie z dokumentacją MariaDB, argumenty liczbowe są konwertowane na ich równoważną postać ciągu binarnego. Możesz tego uniknąć, wykonując jawne rzutowanie typu (za pomocą CAST() lub CONVERT() ).

Argumenty zerowe

Jeśli którykolwiek z argumentów jest null , CONCAT() zwraca null .

Jest jednak jeden wyjątek:w trybie Oracle (tj. sql_mode=ORACLE ), dowolne null argumenty są po prostu ignorowane.

Najpierw zobaczmy, jak CONCAT() zachowuje się w trybie domyślnym.

Ustaw naszą sesję w trybie domyślnym:

SET SESSION sql_mode=DEFAULT;

Teraz uruchom CONCAT() z null argument:

SELECT CONCAT('Homer', ' ', null, ' ', 'Simpson');

Wynik:

+--------------------------------------------+
| CONCAT('Homer', ' ', null, ' ', 'Simpson') |
+--------------------------------------------+
| NULL                                       |
+--------------------------------------------+

Zgodnie z oczekiwaniami wynik to null .

Przejdźmy teraz do trybu Oracle:

SET SESSION sql_mode=ORACLE;

A teraz uruchommy poprzednią CONCAT() przykład ponownie:

SELECT CONCAT('Homer', ' ', null, ' ', 'Simpson');

Wynik:

+--------------------------------------------+
| CONCAT('Homer', ' ', null, ' ', 'Simpson') |
+--------------------------------------------+
| Homer  Simpson                             |
+--------------------------------------------+

Tym razem zignorował null argument i połączył wszystkie pozostałe wartości inne niż null argumenty. Jeśli przyjrzysz się uważnie, zobaczysz, że połączył on obie spacje, więc między Homer jest podwójna spacja i Simpson .

Dla null -bezpieczna alternatywa, użyj CONCAT_WS() . Ta funkcja ignoruje null wartości, nawet jeśli nie są w trybie Oracle.

Alternatywnie możesz użyć IFNULL() aby zapewnić alternatywną (ciągową) wartość dla null wartości (takie jak pusty ciąg).

Pojedynczy argument

Wywołanie CONCAT() z tylko jednym argumentem po prostu zwraca ten argument:

SELECT CONCAT('Homer');

Wynik:

+-----------------+
| CONCAT('Homer') |
+-----------------+
| Homer           |
+-----------------+

Brakujący argument

Wywołanie CONCAT() bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT CONCAT();

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CONCAT'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak UUID_SHORT() działa w MariaDB

  2. Jak uzyskać krótką nazwę dnia z daty w MariaDB?

  3. Porównanie ofert Galera Cluster Cloud:część pierwsza Amazon AWS

  4. Jak działa POKAŻ UKŁADANIE w MariaDB

  5. Jak osiągnąć zgodność z PCI dla MySQL i MariaDB za pomocą ClusterControl — powtórka