簡體   English   中英

如何從 MySQL 中的 JSON 對象中提取數組值

[英]How to extract Array values from JSON Object in MySQL

我正在嘗試從 JSON 對象中的 Array 中提取值,獲取重復次數最多的值並對其進行排序。

我的列tags有下一個對象: {"en":["polytics","friendly"]}

例如:我有很多行包含這些數據,對象“en”有一個包含很多值的數組,我試圖從所有行中提取數組值並按最重復的順序對其進行排序。

sql查詢是怎樣的? 有什么幫助嗎? 謝謝。

由於您使用的是 MySQL 5.7,因此您不支持 JSON_TABLE() 函數,這將是您描述的查詢的解決方案。

SELECT j.tag, COUNT(*) AS count
FROM mytable CROSS JOIN 
JSON_TABLE(tags, '$.en[*]' COLUMNS(tag VARCHAR(10) PATH '$.') AS j
GROUP BY j.tag
ORDER BY count DESC;

我強烈建議您將多值數據存儲在普通的列和行中,而不是 JSON 中。 然后查詢將變得更加簡單:

SELECT `tag`, COUNT(*) AS count
FROM en_tags
GROUP BY `tag`
ORDER BY count DESC;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM