Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да добавите разделител към конкатениран низ в MySQL – CONCAT_WS()

В MySQL, CONCAT_WS() функцията ви позволява да добавите разделител към конкатенирани низове. Ако просто използвате CONCAT() функция, няма да имате разделител (освен ако не сте добавили изрично разделител като аргумент между всеки аргумент на низ).

Често срещано използване на CONCAT_WS() функцията е да създаде списък, разделен със запетая.

Ето един пример:

SELECT CONCAT_WS(',','Sydney', 'Australia') AS Местоположение;

Резултат:

+-----------------+| Местоположение |+------------------+| Сидни, Австралия |+-----------------+

И можете да добавите интервал там, ако искате:

SELECT CONCAT_WS(', ','Сидни', 'Австралия') AS Местоположение;

Резултат:

+------------------+| Местоположение |+-------------------+| Сидни, Австралия |+------------------+

Разделителят

Няма какво да се каже, че разделителят трябва да е запетая. Разделителят може да бъде произволен низ.

Ето същия пример като предишния, с изключение на това, че този използва различен разделител.

SELECT CONCAT_WS(' - ','Париж', 'Франция') AS Местоположение;

Резултат:

+----------------+| Местоположение |+----------------+| Париж - Франция |+----------------+

Пример за база данни

Ето пример за извличане на данни от база данни и комбиниране на две колони в една, разделени със запетая:

SELECT CONCAT_WS(', ', city.Name, country.Name ) КАТО МестоположениеFROM cityINNER JOIN country ONcity.CountryCode =country.CodeWHERE country.Code ='NZL';

Резултат:

+---------------------+| Местоположение |+--------------------------+| Окланд, Нова Зеландия || Крайстчърч, Нова Зеландия || Манукау, Нова Зеландия || Северен бряг, Нова Зеландия || Waitakere, Нова Зеландия || Уелингтън, Нова Зеландия || Дънедин, Нова Зеландия || Хамилтън, Нова Зеландия || Лоуър Хът, Нова Зеландия |+--------------------------+

NULL стойности

Ако някой от аргументите е NULL стойност, MySQL ще пропусне тази стойност и нейния разделител, но все пак ще обработи останалите.

Пример:

SELECT CONCAT_WS(', ','Окланд', NULL, 'Нова Зеландия') AS Местоположение;

Резултат:

<пред>+-----------------------+| Местоположение |+-----------------------+| Окланд, Нова Зеландия |+-----------------------+

Разделител на стойности NULL

Ако самият разделител е NULL стойност, операцията за конкатенация ще върне NULL .

Пример:

SELECT CONCAT_WS(NULL,'Окланд', NULL, 'Нова Зеландия') AS Местоположение;

Резултат:

+---------+| Местоположение |+---------+| NULL |+----------+

Това е една от разликите между MySQL и T-SQL (SQL Server, Azure). В T-SQL, ако разделителят е NULL стойност, стойностите на низовете все още са свързани, но без разделител.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Урок за архивиране и възстановяване (експортиране и импортиране) на MySQL бази данни

  2. Как да прехвърля char към цяло число, докато отправям заявка в django ORM?

  3. Използвайте композитен първичен ключ като външен ключ

  4. Как да изтриете потребител на база данни на MySQL в cPanel

  5. Как да нулирате паролата за root на MySQL