从JSON类型列筛选数据:查询表A女性记录的指定日期数据
SQL查询:提取女性记录及指定日期的JSON数据
针对你的需求,以下是主流数据库对应的SQL写法,核心逻辑是先过滤性别为女性的记录,再从JSON类型的date列中提取2022-01-01对应的值:
MySQL/MariaDB
SELECT gender, JSON_UNQUOTE(JSON_EXTRACT(date, '$.\"2022-01-01\"')) AS `2022-01-01_data` FROM A WHERE gender = 'feminine';
或者用简化的箭头语法(MySQL 5.7+支持):
SELECT gender, date->>'$.\"2022-01-01\"' AS `2022-01-01_data` FROM A WHERE gender = 'feminine';
PostgreSQL
SELECT gender, date->>'2022-01-01' AS "2022-01-01_data" FROM A WHERE gender = 'feminine';
如果需要确保提取的是文本类型,也可以用专门的提取函数:
SELECT gender, json_extract_path_text(date, '2022-01-01') AS "2022-01-01_data" FROM A WHERE gender = 'feminine';
SQL Server
SELECT gender, JSON_VALUE(date, '$.["2022-01-01"]') AS [2022-01-01_data] FROM A WHERE gender = 'feminine';
关键逻辑说明
WHERE gender = 'feminine':精准过滤出所有性别为女性的记录- 各数据库的JSON函数用于从
date列中提取2022-01-01对应的键值,最终结果仅保留符合条件的行及指定日期的数据
内容的提问来源于stack exchange,提问作者Renato Souza de Oliveira
相关产品推荐
相关产品推荐

