如何在mysql中统计json数组中某些值的计数?

作者站长头像
站长
· 阅读数 6

如何在mysql中统计json数组中某些值的计数?json数据如下:类型是json如何在mysql中统计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个回答
avatar
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
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容