如何在MySQL中找到JSON数组字符串中元素的总出现次数?
我试图使用SQL查找JSON数组列中元素的总频率。我确实想出了这个解决办法-如何在MySQL中找到JSON数组字符串中元素的总出现次数?,mysql,sql,json,performance,Mysql,Sql,Json,Performance,我试图使用SQL查找JSON数组列中元素的总频率。我确实想出了这个解决办法- rewards user_id [1, 2, 2] 1 [1, 2, 3] 1 ------------------- SELECT SUM(JSON_LENGTH(JSON_SEARCH(rewards, 'all', '2'))) AS total FROM tbl_answer WHERE user_id = 1 AND JSON_CONTAINS(rewa
rewards user_id
[1, 2, 2] 1
[1, 2, 3] 1
-------------------
SELECT SUM(JSON_LENGTH(JSON_SEARCH(rewards, 'all', '2'))) AS total
FROM tbl_answer
WHERE user_id = 1
AND JSON_CONTAINS(rewards, '2') = 1;
结果
total
3
但有些事告诉我还有更好的办法。如果您对此有任何建议,我将不胜感激。一般来说,JSON应该保留给不需要包含在
WHERE
子句中的数据。所以,我建议重新考虑这个模式。是的,我最终制作了一个历史记录表并从中计数。