我有一张桌子
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
的第二个参数,因为我的列包含一个普通数组而不是对象数组。
答案 0 :(得分: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。