如何在 MySQL 5.7 中統(tǒng)計(jì) JSON 數(shù)組中特定元素的使用次數(shù)?

如何在 MySQL 5.7 中統(tǒng)計(jì) JSON 數(shù)組中特定元素的使用次數(shù)?

如何在 mysql 5.7 中統(tǒng)計(jì) json 數(shù)組中特定元素的使用次數(shù)

mysql 5.7 中沒(méi)有專(zhuān)門(mén)用于統(tǒng)計(jì) json 數(shù)組中特定元素?cái)?shù)量的函數(shù)。然而,我們可以使用 json_search() 函數(shù)和分組查詢來(lái)實(shí)現(xiàn)類(lèi)似的功能。

解決方案:

  1. 使用 json_search() 函數(shù)搜索目標(biāo)元素:

    json_search(tags, 'one', "3467562849402896")

    這將返回一個(gè)包含目標(biāo)元素的 json 值的列表(如果找到的話)。

  2. 對(duì) json 值進(jìn)行分組并計(jì)數(shù):

    select     count(json_search(tags, 'one', <目標(biāo)元素>)) as count from     <table> group by     json_search(tags, 'one', <目標(biāo)元素>)

    這將對(duì)找到的目標(biāo)元素進(jìn)行分組并計(jì)算每個(gè)元素出現(xiàn)的次數(shù)。

示例:

根據(jù)給定的 json 數(shù)據(jù)和目標(biāo)元素,查詢將會(huì)產(chǎn)生以下結(jié)果:

+-----------------------+------+ | count                  | total | +-----------------------+------+ | "3467562849402896"    | 3     | | "3467562861985809"    | 2     | | "3465044211793921"    | 1     | +-----------------------+------+

這種方法允許我們靈活地統(tǒng)計(jì) json 數(shù)組中任何指定元素的計(jì)數(shù),而無(wú)需使用外部代碼或用戶定義函數(shù)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享