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
select cast(concat('[', replace('1|2|3', '|', ', '), ']') as JSON);
-- for convert to text
select cast(concat('["', replace('1|2|3', '|', '", "'), '"]') as JSON);
推荐阅读
- r - 在闪亮的单选按钮条件选择中没有 ggplot 输出
- php - imagecopy 更改照片中的颜色
- c# - 记录 WinForms 应用程序状态
- python-3.x - eBay API - oAuth 自动化
- android - android中的风味资源
- android - Activity UI 在使用 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT 打开后没有响应
- mongodb - MongoDB 和 Spark:无法将 STRING 转换为 TimestampType
- github - 比较几次提交前后的文件
- python - 如何自定义 matplotlib 多光标?
- android - 如何使用 Pepper 从平板电脑录制音频并获取信号?