所以目前我的表中有数据
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, '');
但好像我必须手动指定索引。
最佳答案
对于像这样的简单结构,您可以尝试使用 replace 和 concat
选择 cast(concat('[', replace('1|2|3', '|', ', '), ']') 作为 JSON);
-- 用于转换为文本
选择 cast(concat('["', replace('1|2|3', '|', '", "'), '"]') 为 JSON);
关于mysql - 如何通过分隔符拆分字符串并将其保存为mysql中的json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54366788/