Как читать данные MySQL как JSON - PullRequest
0 голосов
/ 04 октября 2019

У меня есть таблица базы данных, подобная этой:

enter image description here

Затем я хочу прочитать данные в виде объекта json, например:

{
   "date_time":"02102019",
   "ma_vi_tri":
   {
       "1a":222,
       "0a":111,
       "2a":333
   }
 }

Я использую эту команду SQL следующим образом:

MariaDB [mqtt]> SELECT json_object('date_time',date_time,'ma_vi_tri',ma_vi_tri, 'PH', PH) FROM PH where date_time='02102019';

enter image description here

Но вывод результатов не такой, как мне хотелось бы.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Один вариант (будьте осторожны с проблемами производительности):

SELECT
  CONCAT(
    '{"date_time": "', `date_time`, '", "ma_vi_tri": ',
    REPLACE(
      GROUP_CONCAT(
        JSON_OBJECT(`ma_vi_tri`, `PH`)
      ),
    '},{',
    ', '
    ),
    '}'
  ) `JSON`
FROM
  `PH`
WHERE
  `date_time` = '02102019'
GROUP BY
  `date_time`;

См. dbfiddle .

0 голосов
/ 04 октября 2019

Вы можете создать многомерный массив и использовать json_encode

Пример:

$ma_vi_tri_arr['1a'] = "222";
$ma_vi_tri_arr['0a'] = "111";
$ma_vi_tri_arr['2a'] = "333";

$result['date_time'] = "02102019";
$result['ma_vi_tri'] = $ma_vi_tri_arr;

echo(json_encode($result));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...