Задать вопрос
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
  • Вопрос задан
  • 347 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
erge
@erge
Примус починяю
Просто произвести замену ", []
json как строка
select
    replace(replace(replace(replace(phones,', ',' '),'"',''),'[',''),']','') phones
  from clients;

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

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

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