mysql pgsql json数组指定条件遍历查询 通过select指定条件在json数组中做遍历查询匹配,不另外写函数

news/2024/7/9 20:20:21 标签: mysql, json, postgresql, sql

sql>mysql pgsql json数组指定条件遍历查询 通过select指定条件在json数组中做遍历查询匹配,不另外写函数

    • 数据库服务器环境
    • 原表结构和数据
      • students
    • pgsql
      • SQL
      • 结果
    • sql>mysql(TODO。。。
      • SQL
      • 结果
    • 相关文章导读

数据库服务器环境

数据库版本
sql>mysql5.7.34
PostgreSQL10.3

原表结构和数据

sql">create table students
    (
        name varchar,
        gender varchar,
        age int,
        scores jsonb
);

INSERT INTO public.students (name, gender, age, scores) VALUES ('张三', '男', 34, '[{"语文": "78"},{"数学": "90"}]');
INSERT INTO public.students (name, gender, age, scores) VALUES ('李四', '女', 21, '[{"语文": "89"},{"数学": "67"}]');
INSERT INTO public.students (name, gender, age, scores) VALUES ('王二', '女', 27, null);

select *
from students ;

students

namegenderagescores
张三34[{“语文”: “78”}, {“数学”: “90”}]
李四21[{“语文”: “89”}, {“数学”: “67”}]
王二27NULL

sql_37">pgsql

SQL

sql">select *, (scores -> 0 )->>'语文' ::text as score
from students
where scores is not null
  AND exists(
        select 1
        from jsonb_array_elements(students.scores) r
        where r->>'语文' > '80'
    );

结果

namegenderagescoresscore
李四21[{“语文”: “89”}, {“数学”: “67”}]89

sql>mysqlTODO_58">sql>mysql(TODO。。。

SQL

sql">

结果


相关文章导读

sql>mysql 在select查询语句中使用临时变量累计求和 ;
相同列值的记录中再根据条件取其中最大或最新一条;
sql>mysql经纬度求距离并排序

sql>mysql pgsql 实现多行记录合并成一行 分组合并 用指定字符做分割

sql>mysql pgsql 多行记录转JSON数组字段 行转json


http://www.niftyadmin.cn/n/12260.html

相关文章

MySQL 慢查询日志 使用方法浅析 日志定位与优化技巧

目录 前言 1、如何开启使用慢查询日志? 1.1 开启慢查询日志 1.2 设置慢查询阈值 1.3 确定慢查询日志的文件名和路径 1.3.1 查询MySQL数据目录 1.3.2 查询慢查询日志文件名 1.3.3 查询全局设置变量 1.3.4 查询单个变量命令 1.3.5 其他注意事项 2、如何定位并优…

leetcode:6248. 统计中位数为 K 的子数组【问题转化 + 排序二分】

目录题目截图题目分析ac code总结题目截图 题目分析 找到k的位置然后一步步往左走,一步步往右走统计左边和右边的比当前k小的和比k大的lst [[small, big]],分为left和right两部分可以先一侧的单独看small和big,找到big - small 0或者1的即…

二、Robot Framework 对数据库的操作

Robot Framework 对数据库的操作2.1 DatabaseLibrary 库的使用1. 安装 DatabaseLibrary 库2. 测试套件中导入 DatabaseLibrary 库3. 安装 pure-PythonMySQL client library2.1.1 如何连接数据库2.1.2 如何断开数据库2.1.3 如何对数据库的表进行查询2.1.4 如何插入和删除数据2.1…

Go的Printing

Go的Printing 文章目录Go的Printing一、动作1.1 一般1.2 布尔类型1.3 整数1.4 浮点类型和复数1.5 字符串和切片类型1.6 切片地址1.7 指针1.8 %v 的默认值1.9 复合对象的打印规则1.10 宽度和精度1.11 其它的符号一、动作 fmt#Printing 1.1 一般 %v 默认格式的值%v 多一个加号…

【掌握K8S集群部署】手把手真正实现Kubernetes集群的配置与部署(附问题解决方法)

1、环境准备 IPHOSTNAME10.10.20.15k8s110.10.20.16k8s210.10.20.17k8s3 注意hostname不要用下划线、小数点与字母。 2、环境配置(所有节点) # stop firewalld systemctl stop firewalld systemctl disable firewalld# disable selinux sed -i s/enfo…

RK3568平台开发系列讲解(音频篇)Android AudioRecord 采集音频

🚀返回专栏总目录 文章目录 一、Android 平台的音频采集技术选型1.1、SDK 层提供的采集方法1.2、NDK 层提供的采集方法二、AudioRecord 采集音频沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Android 平台音频采集的技术选型,在 SDK 层和 NDK 层各有两套音频采集…

JS(第二十四课)JS高级Es6语法

ECMAScript 6_百度百科 (baidu.com) 第一部分:百度简介 ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型…

【全志T113-S3_100ask】15-2 linux系统gpio模拟spi驱动屏幕——ILI9341

【全志T113-S3_100ask】15-2 linux系统gpio模拟spi驱动屏幕——ILI9341背景(一)查阅参考文档(二)使能内核模块(三)修改设备树(四)测试(五)后语背景 在上一小…