gpt4 book ai didi

mysql - 我需要替换字符串的字符并用 JSON_EXTRACT 读取

转载 作者:行者123 更新时间:2023-11-29 15:41:53 31 4
gpt4 key购买 nike

当使用 JSON.stringify 将 JSON 对象保存在 Mysql 中时,它会将字符“\”放入字符串中。我正在构建一个 VIEW,我需要用 json_extract 来分离数据,因为我使用了 MySql REPLACE 命令,但返回为 null。

已编辑

字段“DADOS”中的 JSON(长文本)

{  
"pessoal":"[{\"nome\":\"Marie Luiza Novaes\",\"nascimento\":\"1994-06-20\",\"civil\":\"Casado(a)\",\"sexo\":\"F\",\"rg\":\"469326293\",\"cpf\":\"06649073504\"}]",
"contato":[],
"interesse":[],
"adicional":[],
"profissional":[],
"academico":[],
"anotacoes":[],
"extras":"[]"
}

1 - 获取 NOME

SELECT
json_extract (REPLACE(dados,'\\"','"'), '$.pessoal[0].nome') dados
FROM
cadastro

2 - 获取 NOME

SELECT
json_extract (REPLACE(dados,'\\',''), '$.pessoal[0].nome') dados
FROM
cadastro

<强> TEST

最佳答案

我发现您当前的方法存在多个问题。首先,您的列中的 JSON 文字文本似乎格式有些错误。 JSON 数组不带双引号,因为它是 JSON 结构的一部分。其次,您使用的 JSON 路径语法也已关闭。以下确切的设置对我有用:

WITH cadastro AS (
SELECT '{"pessoal":[{"nome":"Marie Luiza Novaes","nascimento":"1994-06-20","civil":"Casado(a)","sexo":"F","rg":"469326293","cpf":"06649073504"}],
"contato":[],
"interesse":[],
"adicional":[],
"profissional":[],
"academico":[],
"anotacoes":[],
"extras":[]}' AS dados
)

SELECT
JSON_EXTRACT(dados, '$.pessoal[0].nome') dados
FROM cadastro;

Demo

此查询的输出是“Marie Luiza Novaes”

关于mysql - 我需要替换字符串的字符并用 JSON_EXTRACT 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57550493/

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