sql - 从redshift sql中的varchar中提取值
问题描述
从 varchar 中获取值的 SQL。我在 redshift 中有一个列元素作为 varchar,如下所示
Id elements
1 [{"name":"email","value":"abc@gmail.com","nodeName":"INPUT","type":"text"},{"name":"password","value":"*****","nodeName":"INPUT","type":"password"},{"name":"checkbox","value":null,"nodeName":"INPUT","type":"checkbox"}]
如何在上面的这个数组中选择值,即。abc@123
解决方案
如果是MYSQL数据库,你应该使用
json_extract
https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html
SELECT
ID,
json_extract(JSON_DATA, '$[0].value') AS MAIL
FROM JSON_TABLE;
结果:
ID MAIL
1 "abc@gmail.com"
演示:http ://rextester.com/live/SQG30833
Redshift应该可能使用json_extract_path_text函数 https://docs.aws.amazon.com/redshift/latest/dg/JSON_EXTRACT_PATH_TEXT.html
推荐阅读
- python - Flask 中的 SQLAlchemy:我需要关闭数据库会话吗?
- c++ - 控制台应用程序中的 C++ 中心文本?
- powershell - 命令运行并执行我想要的操作,但仍然在 Powershell 中显示错误(以红色突出显示)
- html - 如何连续显示我的项目(使用 php 和 bootstrap 显示数据库中的所有项目)
- ubuntu - 将 .obj+.mtl 模型转换为具有顶点颜色信息的 .ply 格式
- postgresql - 创建仅对一个数据库具有授予权限的用户
- c - 无法在C中读取文件文本文件
- c - 如何舍入浮点数结果?
- android - Ionic 3 中的任务“:transformClassesWithDexForDebug”执行失败
- javascript - 如何创建像谷歌一样的水平滚动菜单?