首页 > 解决方案 > 如何通过分隔符拆分字符串并将其保存为mysql中的json对象

问题描述

所以目前我的表中有数据

Numbers (Varchar 255)
111|1232|234
434|234
12546|3243|3434
23434|34
35465|3434

当前,该列是 VARCHAR 但我打算将其转换为 JSON 字段,因此我试图在转换字段之前将它们设为 json 或数组。

我试着按照这个

CREATE FUNCTION SPLIT_STRING(str VARCHAR(255), delim VARCHAR(12), pos INT)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(str, delim, pos),
   LENGTH(SUBSTRING_INDEX(str, delim, pos-1)) + 1),
   delim, '');

但似乎我必须手动指定索引。

标签: mysqlmysql-json

解决方案


对于像这样的简单结构,您可以尝试使用 replace 和 concat

select cast(concat('[', replace('1|2|3', '|', ', '), ']') as JSON); -- for convert to text select cast(concat('["', replace('1|2|3', '|', '", "'), '"]') as JSON);


推荐阅读