mysql - 如何通过分隔符拆分字符串并将其保存为mysql中的json对象

标签 mysql 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, '');

但好像我必须手动指定索引。

最佳答案

对于像这样的简单结构,您可以尝试使用 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/

相关文章:

mysql - 无法使用 JSON_CONTAINS 进行搜索

MySQL - 如何在 JSON 数据字段中搜索

mysql - :joins and :includes 之间的事件记录查询冲突

PHP提交时不会将sql数据发送到数据库?

mysql - 从以前的最新记录中选择一列

MySQL 嵌套 JSON 列搜索和提取子 JSON

mysql - mysql 5.7中JSON数据类型列中的嵌套更新查询

MySQL:两个结果集的差异

mysql - SQL 查询以查找所有记录的特定值

mysql - 如何使用子查询更新 json 列?