3

我有一张桌子

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因为我的列包含一个普通数组而不是对象数组。

4

1 回答 1

0

如果您使用的是 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`;

请参阅db-fiddle

于 2018-12-23T07:45:22.910 回答