Читать массив столбцов MySQL JSON в виде строк - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть таблица

X

 - id
 - name (eg: 'testing')
 - array_column_name (eg: ["value1","value2"])

Мне нужен запрос, который выдаст следующий вывод.

_____________________
| column1 | column2 |
| testing | value1  |
| testing | value2  |
|_________|_________|

По сути, мне нужно преобразовать массив в строки.

Я пытался использовать

SELECT name, JSON_EXTRACT(@'array_column_name', '*') FROM X;

Но я не уверен, что указывать в качестве второго параметра JSON_EXTRACT, поскольку мои столбцы содержат простой массив вместо массива объектов.

1 Ответ

0 голосов
/ 23 декабря 2018

Если вы используете MySQL> = 8.0.4, вы можете использовать JSON_TABLE , в противном случае добиться того, что вам нужно, будет несколько менее просто:

SELECT
  `X`.`name` `column1`,
  `der`.`column2`
FROM
  `X`,
  JSON_TABLE(
    `array_column_name`,
    '$[*]'
    COLUMNS(
      `column2` VARCHAR(255) PATH '$'
    )
  ) `der`;

См. дб-скрипка .

...