首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将所有字符串更新为JSON数组

如何将所有字符串更新为JSON数组
EN

Stack Overflow用户
提问于 2022-03-08 16:43:11
回答 1查看 595关注 0票数 1

我正在寻找一种方法来更新或更好地将每个值连接到一个JSON数组中。所有的值都是字符串。我知道,在更简单的情况下,我可以做一些替换的事情,比如:

代码语言:javascript
复制
SELECT JSON_REPLACE('[1, 2, 3]', '$[0]', 9) AS 'Result';

这将将第一个字段替换为9;但是有一种方法可以用一个固定字符串连接每个值吗?我知道这是不正确的,但有点像:

代码语言:javascript
复制
SELECT JSON_REPLACE('[1, 2, 3]', '$[*]', concat($[*], 'fixed')) AS 'Result';

要获得

代码语言:javascript
复制
'["1fixed", "2fixed", "3fixed"]

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-03-08 16:51:44

代码语言:javascript
复制
mysql> select json_arrayagg(concat(val, 'fixed')) as result 
  from json_table('[1, 2, 3]', '$[*]' columns (val int path '$')) as j;
+--------------------------------+
| result                         |
+--------------------------------+
| ["1fixed", "2fixed", "3fixed"] |
+--------------------------------+

MySQL 8.0是JSON_TABLE()函数所必需的。MySQL 5.7或更高版本是JSON_ARRAYAGG()函数所必需的。

如果这看起来很复杂,对不起,但这是将数据存储为JSON字符串的结果,然后尝试对字符串中的值使用SQL表达式。这肯定会很尴尬,因为您正在实现一个名为内平台效应的反模式。

如果您不将数据存储为JSON数组,而是以普通形式存储数据,每行只有一个值,这就容易多了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71398544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档