MySQL中使用json_contains查询JSON数组无结果,如何查找数组内的值?
MySQL JSON数组值匹配问题解决
你的SQL未返回结果的核心原因是json_contains参数类型不匹配:数组内的元素是字符串类型的"1",但你传入的匹配值是数字格式的'1',JSON对类型区分严格,导致匹配失败。
修改后的正确SQL有两种写法:
方法1:直接传入JSON格式的字符串值
create table tbl (id int, home json); insert into tbl values (1, '[ "1", "2", "3" ]'); select * from tbl where json_contains(home, '"1"');
方法2:用JSON_QUOTE函数自动处理引号
select * from tbl where json_contains(home, json_quote('1'));
两种方式都能正确匹配数组内的字符串"1",返回目标数据行。
内容的提问来源于stack exchange,提问作者Taras PHP
相关产品推荐
相关产品推荐

