sql json数组取值的方法是什么
程序界的探秘者
2024-04-12 14:34
短信预约 Json-IT技能 免费直播动态提醒
这篇文章将为大家详细讲解有关sql json数组取值的方法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
取值方法
1. 使用 JSON_VALUE 函数
语法:
JSON_VALUE(json_column, "$.key")
示例:
SELECT JSON_VALUE(user_data, "$.name")
FROM user_table;
2. 使用 JSON_EXTRACT 函数
语法:
JSON_EXTRACT(json_column, "$.key")
示例:
SELECT JSON_EXTRACT(user_data, "$.address.city")
FROM user_table;
3. 使用 -> 操作符
语法:
json_column -> "key"
示例:
SELECT user_data -> "name"
FROM user_table;
4. 使用 ->$ 操作符 (仅 MySQL 8+)
语法:
json_column -> "$."key"
示例:
SELECT user_data -> "$."address.city"
FROM user_table;
5. 使用 JSON_QUERY 函数
语法:
JSON_QUERY(json_column, "$.key")
示例:
SELECT JSON_QUERY(user_data, "$.name")
FROM user_table;
6. 使用 XPath 表达式
语法:
XPATH(json_column, "//key/@attribute")
示例:
SELECT XPATH(user_data, "//address/city/@id")
FROM user_table;
7. 使用 unnest() 和 json_value() 函数
语法:
unnest(json_array) AS key, value
SELECT json_value(value, "$.key") AS subvalue
FROM user_table
CROSS JOIN unnest(user_data) AS t(json_array)
WHERE key = "key_name";
示例:
SELECT subvalue
FROM user_table
CROSS JOIN unnest(user_data) AS t(json_array)
WHERE key = "tags";
8. 使用 lateral() 和 json_each() 函数
语法:
FROM LATERAL(
JSON_EACH(json_column) AS key VALUE value
)
SELECT key, value;
示例:
FROM LATERAL(
JSON_EACH(user_data) AS key VALUE value
)
SELECT key, value
FROM user_table;
以上就是sql json数组取值的方法是什么的详细内容,更多请关注编程学习网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341