如何在mysql中统计json数组中某些值的计数?
如何在mysql中统计json数组中某些值的计数?json数据如下:类型是json
我想统计比如一个集合中:{"3467562849402896", "3467562861985809","3465044211793921"}的每个元素被使用了几次?上述集合中的元素个数是不固定的,是输入的参数方案:我知道mysql8的JSON_TABLE是可以的,但是我的版本是5.7我想到一个方案是这个:先用下面的sql找出来谁用了这个id,然后在代码中处理统计次数
where JSON_CONTAINS(tags ,'"3467562849402896"' , '$')
OR JSON_CONTAINS(tags, '"3467562861985809"', '$')
OR JSON_CONTAINS(tags, '"3465044211793921"', '$');
还没有更好的方案呢?
回复
1个回答
test
2024-06-23
- 因为要
每个元素
,OR 的只能查到 一共 有多少行 有交集
SELECT
count( JSON_SEARCH( tags, 'one', "3467562849402896" ) ),
count( JSON_SEARCH( tags, 'one', "3467562861985809" ) ),
count( JSON_SEARCH( tags, 'one', "3465044211793921" ) )
FROM
XXXXXXXXXX
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容