Как заменить нулевое значение на {} в mysql?

Я пытаюсь получить значение из таблицы, где значение нулевого статуса должно быть заменено на {} (пустой объект json), поэтому я использовал ниже функцию mysql

IFNULL(status, '{}') as status from table;

но его вывод - '{}', но я хочу, чтобы вывод был только {} (без одинарных кавычек)

Также я пробовал с вариантами ниже

IFNULL(status, "{}") -->  output -"{}"
IFNULL(status, '{}') -->  output -'{}'
IFNULL(status, {}) -->  output -Mysql error`

Ожидаемый результат - только пустой объект j son Пожалуйста, предложите любое решение.

пожалуйста, поделитесь своей таблицей с некоторыми ее данными

guneraykut 23.01.2019 14:37
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
1
240
2

Ответы 2

Проверяем функцию JSON_UNQUOTE :

SELECT JSON_UNQUOTE(IFNULL(status, "{}")) as status FROM table

Как заменить нулевое значение на {} в mysql? Приведенное выше решение не работает с Json Object. Для «статуса» значением ключа является строка. поэтому после использования вышеуказанной функции (JSON_UNQUOTE) вывод будет "{}" вместо {}.

Dream_hat 30.01.2019 13:29

mysql не поддерживает функцию JSON_UNQUOTE, если вы конвертируете этот результат mysql в объект json. поэтому обходной путь заключается в использовании функция замены строки (java или любого другого языка) в вашей структуре.

БЫВШИЙ.

  • String rs = str.replace(""{","{"); // Заменить '"{' на '{'
  • String rs = str.replace("}"","}"); // Заменить '}"' на '}'

Другие вопросы по теме