Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中,json_数组中的整数元素导致json_搜索失败_Mysql - Fatal编程技术网

在MySQL中,json_数组中的整数元素导致json_搜索失败

在MySQL中,json_数组中的整数元素导致json_搜索失败,mysql,Mysql,我有一个json_数组[1,2,3,3,3],我想知道元素“3”的数量 比如说, json_search('[1, 2, 3, 3, 3]', 'all', 3) return null; json_search('["1", "2", "3", "3", "3"]', 'all', '3') return ["$[2]", "$[3]", "$[4]"]; 所以, json_length(json_search('[1, 2, 3, 3, 3]', 'all', 3)) return nul

我有一个json_数组[1,2,3,3,3],我想知道元素“3”的数量

比如说,

json_search('[1, 2, 3, 3, 3]', 'all', 3) return null;
json_search('["1", "2", "3", "3", "3"]', 'all', '3') return ["$[2]", "$[3]", "$[4]"];
所以,

json_length(json_search('[1, 2, 3, 3, 3]', 'all', 3)) return null;

我想要三个


我找了一整天,但我不知道解决方案并寻求帮助。

这里的一个选项是,假设您只有一个顶级JSON整数数组,使用正则表达式替换技巧来计算3的数量:

WITH yourTable AS (
    SELECT '[1, 2, 3, 3, 3]' AS array
)

SELECT
    LENGTH(array) - LENGTH(REGEXP_REPLACE(array, '\\b3\\b', '')) AS num_3
FROM yourTable;

这将返回3作为长度,这是正确的。

这是否回答了您的问题?我使用的是mysql版本5.7,所以我不能使用你说的方法,但我有了一个好主意,解决了这个问题。非常感谢。@ Server巫师感谢投票,但是如果你的答案与我发表的内容大不相同,但它奏效了,你应该考虑回答你自己的问题(是的——你实际上可以做到这一点)。