簡體   English   中英

將MySQL JSON列數組讀取為行

[英]Read MySQL JSON column array as rows

我有桌子

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的第二個參數,因為我的列包含一個普通數組而不是對象數組。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM