繁体   English   中英

使用 JSON_TABLE 将 List 转换为 Rows

[英]Using JSON_TABLE to convert List into Rows

我有一个数据库列(名为“product_parents”),格式为 JSON object,其中包含以下数据:

'[“A”、“B”、“G”、“H”、“C”、“E”、“P”、“R”]'

我想使用 JSON_Table 为每个项目创建单独的行。

理想情况下,我会得到类似的东西:

|product_parent|

|一个| |B| |C| |...| |P| |R|

我试过了

SELECT *
    FROM pmctb.products AS p,
    JSON_TABLE (p.product_parents, '$[*]'
        COLUMNS (
                pp_id FOR ORDINALITY,
                pp_pn VARCHAR(255) PATH '$.header')
                ) AS pp
    WHERE product_uid = "310-000574"

($.header 只是一种尝试,因为没有列标题)但这只是返回表和序数,并为 pp_pn 提供了空值。

任何帮助,将不胜感激。 谢谢

看起来这对 MySQL 8+ 有效:

create table products (product_parents json);

insert into products values ('["A", "B", "G", "H", "C", "E", "P", "R"]');

select pp
from products,
JSON_TABLE(
  products.product_parents,
  '$[*]' columns (pp varchar(255) path '$')
) t;

结果是:

pp
一个
G
H
C
R

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM