serpanok
@serpanok

Как объединить JSON в строку в выборке MySQL?

В таблице есть поле типа JSON в котором хранится массив номеров телефона. Как выполнить запрос, чтобы в результате получить не JSON, а строку со списком номеров конкретного пользователя?

структура таблицы

CREATE TABLE `clients` (
`id` smallint(5) UNSIGNED NOT NULL,
`name` varchar(20) DEFAULT NULL,
`phones` json DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

пример данных

id: 1
name: пользователь 1
phones: ["380990000123"]

id: 2
name: пользователь 2
phones: []

id: 3
name: пользователь 3
phones: ["380991234567", "380958877654"]

Как можно выполнить запрос чтобы получить в результате поле phones не как JSON, а как строку номеров разделённых пробелом? Исключительно силами MySQL
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
erge
@erge
Примус починяю
Просто произвести замену ", []
json как строка
select
    replace(replace(replace(replace(phones,', ',' '),'"',''),'[',''),']','') phones
  from clients;

см. пример
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы