#mysql #arrays #string #function
Вопрос:
Мне нужно создать функцию, которая будет преобразовывать эти данные: «test1@test.com;test2@test.com» в JSON, как строка: «[«test1@test.com», «test2@test.com»]».
В функции MySQL… Есть какие-нибудь идеи?
Комментарии:
1. Просто хочу отметить — на самом деле это не то, для чего предназначен MySQL.
2. ОБЪЕДИНИТЬ() и ЗАМЕНИТЬ() — больше ничего.
Ответ №1:
SET @value := '"test1@test.com;test2@test.com"'; SELECT @value, CONCAT('"[', REPLACE(@value, ';', '", "'), ']"');
@значение CONCAT(‘»[‘, ЗАМЕНИТЬ(@значение, ‘;’, ‘», «‘), ‘]»‘) «test1@test.com;test2@test.com» «[«test1@test.com», «test2@test.com»]»
бд<>скрипка <>здесь
Комментарии:
1. Спасибо за быстрый ответ, Акина! Дальнейший вопрос 🙂 — если я использую этот код:
SET @value := client.email SELECT @value, CONCAT('"[', REPLACE(@value, ';', '", "'), ']"');
изменит ли он все клиентские адреса электронной почты?2. @kg Select ничего не может изменить. Требуется обновление.
UPDATE client SET email = CONCAT('"[', REPLACE(email, ';', '", "'), ']"');
3. Большое спасибо!