gpt4 book ai didi

MySQL json提取/搜索不匹配

转载 作者:行者123 更新时间:2023-11-29 18:11:37 27 4
gpt4 key购买 nike

这让我发疯。有人可以解释一下,为什么第一次调用返回一个路径,但是当从表中选择路径时,没有找到路径?

(MySQL-版本 5.7.20)

按预期工作:

SELECT JSON_SEARCH(
'{"mm": [{"id":"1","field":"test","value":33}]}',
'one', '1', null, '$.mm[*].id') as path;
-- output: path== "$.mm[0].id"

不工作:

drop table test;
create table test(
id int primary key,
data json
);

insert into test (id, data) values (1, '{}');
update test set data=JSON_SET(data, '$.mm', json_array()) where id=1;
update test set data=JSON_ARRAY_APPEND(data, '$.mm', '{"id":"1","field":"test","value":33}') where id=1;
SELECT JSON_SEARCH(data, 'one', '1', null, '$.mm[*].id') as path from test where id=1;
-- output: path==NULL
-- expected: path== "$.mm[0].id"

很确定我在这里犯了一些错误,但我不知道是哪一个......

谢谢

最佳答案

明白了...必须将字符串转换为 json 才能在表中拥有对象类型。对于追加和设置来说也是如此。使用 JSON_SEARCH 时,如果第一个参数是字符串,则会自动转换为 json。

关于MySQL json提取/搜索不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346022/

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