將 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中文網其他相關文章!