簡體   English   中英

從 MySQL 中提取所有 JSON 鍵

[英]Extract all JSON keys from MySQL

我有一個 JSON 列屬性,如:

{'a': 2, 'b': 5}
{'c': 3, 'a': 5}
{'d': 1, 'c': 7}
{'e': 1, 'f': 7}

如何從 MySQL 獲取所有不同的(頂級)鍵名?

像這樣:

['a', 'b', 'c', 'd', 'e', 'f']

謝謝你!

從 JSON_KEYS 開始獲取密鑰。 從那里你有一些選擇,但最好的可能是 JSON_ARRAY。

好吧,不是最好的解決方案,但適用於json數據類型

select distinct(json_extract(json_keys(*YOUR_VALUE*),'$[0]')) from *YOUR_TABLE*
union
select distinct(json_extract(json_keys(*YOUR_VALUE*),'$[1]')) from *YOUR_TABLE*

測試表:

+----+------------------+
| id | json_col         |
+----+------------------+
|  2 | {"a": 2, "b": 5} |
|  3 | {"c": 3, "a": 5} |
|  4 | {"d": 1, "c": 7} |
|  5 | {"e": 1, "f": 7} |
+----+------------------+

在 Mysql 8.0 中使用JSON_TABLE

SELECT DISTINCT json_key FROM test_tbl,
    json_table(
        json_keys(json_col),
        '$[*]' COLUMNS(json_key JSON PATH '$')
    ) t;

結果:

+----------+
| json_key |
+----------+
| a        |
| b        |
| c        |
| d        |
| e        |
| f        |
+----------+

暫無
暫無

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

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