首頁 >資料庫 >mysql教程 >如何在 MySQL 中將 JSON 陣列轉換為行?

如何在 MySQL 中將 JSON 陣列轉換為行?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-26 02:54:09431瀏覽

How to Convert a JSON Array into Rows in MySQL?

將 MySQL 中的 JSON 陣列轉換為行

將 JSON 陣列轉換為 MySQL 表中的單獨行可能是一個挑戰。但是,可以使用各種技術來實現此操作,包括以下技術:

方法1:JSON_EXTRACT 和Union

此方法涉及使用JSON_EXTRACT 函數提取單一數組元素並使用UNION 運算子將它們組合起來。舉個例子:

SET @j = '[1, 2, 3]';

SELECT JSON_EXTRACT(@j, '$[0]') AS value
UNION
SELECT JSON_EXTRACT(@j, '$[1]') AS value
UNION
SELECT JSON_EXTRACT(@j, '$[2]') AS value;

方法二:JSON_TABLE (MySQL 8 )

MySQL 8 引入了 JSON_TABLE 函數,它允許你建立一個基於JSON 文件。這提供了一種將 JSON 數組轉換為行的簡單方法。以下是一個範例:

SET @j = '[5, 6, 7]';

SELECT *
FROM JSON_TABLE(
  @j,
  "$[*]"
  COLUMNS(
    Value INT PATH "$"
  )
) data;

方法 3:字串分割和 JSON_TABLE

此技術利用了 MySQL 缺乏內建字串分割功能的事實。透過將分隔字串轉換為 JSON 字串,您可以使用 JSON_TABLE 來實現分割功能。

set @delimited = 'a,b,c';

SELECT *
FROM JSON_TABLE(
  CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'),
  "$[*]"
  COLUMNS(
    Value varchar(50) PATH "$"
  )
) data;

這些方法為將 JSON 陣列轉換為 MySQL 中的單獨行提供了通用的解決方案。雖然 MySQL 5.7 可能需要更複雜的方法,但 MySQL 8 引入了更有效率的選項,例如 JSON_TABLE,為資料操作開闢了新的可能性。

以上是如何在 MySQL 中將 JSON 陣列轉換為行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn