gpt4 book ai didi

mysql - SQL 替换所有指定的键

转载 作者:行者123 更新时间:2023-11-29 15:39:06 25 4
gpt4 key购买 nike

我有一个表中仅包含 json 字符串的一列(varchar)。我想用“”替换该列上的所有键。我该如何使用 sql 来做到这一点?我的数据库是MySQL。

例如:

|--------------------------------------------------------------------|
| t_column |
|--------------------------------------------------------------------|
| {"name":"mike","email":"xxx@example.com","isManage":false,"age":22}|
|--------------------------------------------------------------------|
SELECT replace(t_column, regexp, "") FROM t_table

我期望:mikexxx@example.comfalse22

如何编写正则表达式

最佳答案

开始
select t_column->'$.*' from test

这将返回属性值的 JSON 数组:

[22, "mike", "xxx@example.com", false]

这可能已经是您所需要的,您可以尝试类似的方法

select *
from test
where t_column->'$.*' like '%mike%';

不幸的是,似乎没有像 JSON_ARRAY_CONCAT() 这样的本地方法可以将数组值连接到单个字符串。在 MySQL 8.0 中,您可以尝试 REGEXP_REPLACE() 并删除所有 JSON 字符:

select regexp_replace(t_column->'$.*', '[" ,\\[\\]]', '') from test

这将返回'22mikexxx@example.comfalse'

如果值可以包含这些字符之一,它们也将被删除。

注意:这不太可靠。但这是我能以“简单”的方式做的。

请参阅 db-fiddle 上的演示.

关于mysql - SQL 替换所有指定的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57873546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com