在MySQL中,json_search失败,json_array中有integer元素



我有一个json_array[1,2,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;

我想要3

我找了一整天,但我不知道解决办法,所以请求帮助。

这里的一个选项是,假设您只有一个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作为长度,这是正确的。

相关内容

最新更新