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

Mysql:where in与json_extract一起使用时不返回任何行,mysql,where-in,json-extract,Mysql,Where In,Json Extract,我对以下简单的陈述有些困惑 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

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

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”似乎彼此不喜欢?或者我可能错过了什么


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

如果您尝试评估

json_extract(data, "$.name")
->这将导致
“vova”

含义是使用双引号,将此场景中的
操作符视为选择字符串值,添加单引号

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

在这里学习,你会错过一些东西哦,是的,当然。。。想知道如果只有一个元素,为什么它会正确匹配/不匹配