Перейти к основному содержимому
Версия: 2.0.x

str_to_map

Разделяет заданную строку на пары ключ-значение с использованием двух разделителей и возвращает map из разделённых пар.

Эта функция поддерживается начиная с версии 3.1.

Синтаксис

MAP<VARCHAR, VARCHAR> str_to_map(VARCHAR content[, VARCHAR delimiter[, VARCHAR map_delimiter]])

Параметры

  • content: обязательный, строковое выражение для разделения.
  • delimiter: необязательный, разделитель, используемый для разделения content на пары ключ-значение, по умолчанию ,.
  • map_delimiter: необязательный, разделитель, используемый для отделения каждой пары ключ-значение, по умолчанию :.

Возвращаемое значение

Возвращает MAP из элементов STRING. Любой входной параметр null приводит к результату NULL.

Примеры

mysql> SELECT str_to_map('a:1|b:2|c:3', '|', ':') as map;
+---------------------------+
| map |
+---------------------------+
| {"a":"1","b":"2","c":"3"} |
+---------------------------+

mysql> SELECT str_to_map('a:1;b:2;c:3', ';', ':') as map;
+---------------------------+
| map |
+---------------------------+
| {"a":"1","b":"2","c":"3"} |
+---------------------------+

mysql> SELECT str_to_map('a:1,b:2,c:3', ',', ':') as map;
+---------------------------+
| map |
+---------------------------+
| {"a":"1","b":"2","c":"3"} |
+---------------------------+

mysql> SELECT str_to_map('a') as map;
+------------+
| map |
+------------+
| {"a":null} |
+------------+

mysql> SELECT str_to_map('a:1,b:2,c:3',null, ':') as map;
+------+
| map |
+------+
| NULL |
+------+

mysql> SELECT str_to_map('a:1,b:2,c:null') as map;
+------------------------------+
| map |
+------------------------------+
| {"a":"1","b":"2","c":"null"} |
+------------------------------+

keywords

STR_TO_MAP