gpt4 book ai didi

Mysql:与 json_extract 一起使用时,where in 不返回任何行

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

我对以下简单的陈述有些困惑。

create table Test(id integer, data json);
insert into Test(id, data) values(1, '{"name": "vova"}');

select * from Test
where json_extract(data, "$.name") IN ("vova", "mark");

此处 select 不返回任何内容。但是,如果我在数组中留下单个元素,查询将返回预期的行:

select * from Test
where json_extract(data, "$.name") IN ("vova");

“json_extract”和“where in”似乎彼此不喜欢?或者我可能错过了什么?

这是一个带有 example 的链接。当我在本地运行查询时,行为是相同的。

最佳答案

如果您尝试评估

json_extract(data, "$.name")

-> 这将导致 "vova"

含义是使用双引号,在这种情况下将您的IN运算符视为选择字符串值,添加单引号。

select * from Test
where json_extract(data, "$.name") IN ('"vova"', '"mark"');

关于Mysql:与 json_extract 一起使用时,where in 不返回任何行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59402772/

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