Я строю небольшие блоки JSON из функций, и мне нужно фильтровать нулевые значения при цитировании ненулевых значений, подобных этому (MySQL 5.0, в функциях JSON):объединить CONCAT() и COALESCE() для генерации JSON в MySQL
COALESCE(CONCAT('[',
group_concat(
CONCAT('{ "key": "', REPLACE(a.val, '"', '\\"'), '"}')
SEPARATOR ', ')
, ']'), 'null') AS jsonval
, который выводит что-то подобное (это значение, которое должно быть включено в полном блоке JSON):
- со значениями:
[{"key": "foo"}, {"key": "bar"}, {"key": "baz"}]
- без значений (NUL L):
null
- с пустой строкой:
[{"key": ""}]
Для каждого a.val
Я хочу, чтобы добавить запись в моем списке, но есть строка null
вместо полного списка, если значение не найдено. Он работает очень хорошо, но мне нужно обрабатывать пустые строки, а также значения NULL
как null в результате JSON.
REPLACE()
, CONCAT()
и COALESCE()
работа довольно хорошо вместе нулевых значений, но пустые строки не обнаружены, как я могу справиться с NULL и пустая строка точно так же?
Я видел this question о чередовании нулевых значений, я ищу обратное.
Почему вы генерации JSON из кода SQL? Как правило, вы не должны этого делать (потому что это проблема приложения/передачи данных, а не операция с базой данных). – Dai
Я не должен использовать MySQL 5.0 либо ... Требования к бизнесу! Этот JSON нельзя передавать, но использовать для целей отчетности/обслуживания, мы не можем добавить внешний инструмент для экспорта. – Preuk
, связанный после редактирования: http://stackoverflow.com/questions/12818897/mysql-group-concat-vs-coalesce-concerning-null-values – Preuk