【问题标题】:Read MySQL JSON column array as rows将 MySQL JSON 列数组读取为行
【发布时间】:2019-05-20 03:07:34
【问题描述】:

我有一张桌子

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

【问题讨论】:

  • 你能举一个你的json的例子吗?
  • @Vixed 我已经在第一个代码块中有一个示例。 ["value1","value2"]

标签: mysql sql arrays json mysql-json


【解决方案1】:

如果你使用 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-02-23
    • 2022-11-30
    • 2021-08-29
    • 2016-12-11
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2017-02-15
    • 2019-05-31
    相关资源
    最近更新 更多