1. JSON_SEARCH(col, type, val)

JSON_SEARCH(col ->> '$[*].key', type, val)

col: JSON格式的字段名

key:要搜索的col字段的key,如果字段没有key可以省略,例如单纯的json字符串['1', '2', '3', '4']

type:可以为'one'或者'all','one'表示搜索到一个即返回,'all'表示搜索完再返回

val:要搜索的字段值,字符串格式,支持模糊搜索

返回值:如果col字段的key中含有val值,则返回第一个出现该值的索引;如果col字段的key中不含有val值,则返回null

注:如果col字段为单值JSON,不需要加[*],只有当其为数组JSON时才需要加

2. JSON_CONTAINS(col, '{key:val}')

col:JSON格式的字段名

key:要搜索的col字段的key,字符串格式

val:要搜索的字段值,字符串格式

返回值:如果col字段的key中含有val值,则返回1;如果col字段的key中不含有val值,则返回0

这两个函数都可以检索JSON格式的字段中是否含有指定的值,下面举例说明

teams表,有4个字段,其中leaders是JSON格式,表示团队主管

id   name     create_time    leaders
1 小象 2018-10-05 [{"userId": "001", "displayName": "张三"}, {"userId": "005", "displayName": "李四"}, {"userId": "008", "displayName": "刘鹏"}]
2 新人类 2018-05-15 null
3 芒果 2017-08-22 [{"userId": "002", "displayName": "王五"}, {"userId": "005", "displayName": "李四"}]
4 三叶草 2018-01-10 [{"userId": "001", "displayName": "张三"}, {"userId": "014", "displayName": "王大锤"}]
5 火车头 2017-12-12 null

现在要检索张三作为团队主管的团队

SELECT * FROM teams
WHERE JSON_SEARCH(leaders ->> '$[*].displayName', 'one', '%张三%') IS NOT NULL; SELECT * FROM teams
WHERE JSON_CONTAINS(leaders, '{"displayName":"张三"}') = ;

以上两种方法都查出结果

id   name     create_time    leaders
1 小象 2018-10-05 [{"userId": "001", "displayName": "张三"}, {"userId": "005", "displayName": "李四"}, {"userId": "008", "displayName": "刘鹏"}]
4 三叶草 2018-01-10 [{"userId": "001", "displayName": "张三"}, {"userId": "014", "displayName": "王大锤"}]

MySQL的常用JSON函数的更多相关文章

  1. [转]MySQL常用Json函数和MySQL常用字符串函数

    MySQL常用Json函数:https://www.cnblogs.com/waterystone/p/5626098.html MySQL常用字符串函数:https://www.cnblogs.co ...

  2. Mysql中常用的函数汇总

    Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回 ...

  3. MySQL常用Json函数

    官方文档:JSON Functions Name Description JSON_APPEND() Append data to JSON document JSON_ARRAY() Create ...

  4. (转) MySQL常用Json函数

    原文:http://www.cnblogs.com/waterystone/p/5626098.html 官方文档:JSON Functions Name Description JSON_APPEN ...

  5. MYSQL初级学习笔记八:MySQL中常用的函数!(视频序号:初级_45-50)

    知识点十:MySQL中的函数(45-50) 数学函数: 名称 描述 CEIL() 进一取整 FLOOR() 舍一取整 MOD 取余数(取摸) POWER() 幂运算 ROUND() 四舍五入 TRUN ...

  6. mysql中常用的函数

    -- 基本上都是抄的别人整理的 -- 一.数学函数 ABS(x) -- 返回x的绝对值 BIN(x) -- 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) -- 返回大于 ...

  7. MySQL最常用字符串函数

    字符串函数 是最常用的的一种函数,在一个具体应用中通常会综合几个甚至几类函数来实现相应的应用: 1.LOWER(column|str):将字符串参数值转换为全小写字母后返回 mysql> sel ...

  8. MySQL中常用转换函数介绍

    Cast函数:CONVERT函数. 用法:CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name). ...

  9. [MySQL] MySQL存储过程常用的函数

    一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2  [,... ]) //连接字串 INSTR (string ,substring ) //返回substr ...

随机推荐

  1. checkbox的全选、全消的使用

    jquery的选择器的使用 //全选,全消 $("#check_all").click(function () { state = $(this).prop("check ...

  2. C# 中的DevExpress控件的使用

    使用教程:http://training.evget.com/video/5110 C#  System 程序集https://msdn.microsoft.com/zh-cn/library/mt4 ...

  3. 封装自己的framework静态库

    ios中我们写的代码有时不愿意让别人看到,可能对它进行封装,生成一个静态库如典型的.a,还有一种就是和 苹果自带的库一样的后缀名为.framework的库,个人推荐使用.framework,因为.a不 ...

  4. Qt Creator的初步使用

    http://c.biancheng.net/view/1804.html 启动 Qt Creator,出现如图 1 所示的主窗口: 图 1 Qt Creator主窗口 Qt Creator 的界面很 ...

  5. linux用户管理(useradd、userdel、usermod、groupadd、groupdel、chage、passwd、chpasswd)

    一.用户账户配置文件介绍 /etc/passwd 用户账户信息文件/etc/shadow 用户账户密码文件/etc/group 用户组信息文件/etc/gshadow 用户组密码所在文件(基本废弃)/ ...

  6. 09java进阶——IO

    1.File类 1.1目录及路径分隔符 package cn.jxufe.java.chapter09.demo01; import java.io.File; public class Test01 ...

  7. 网络流 最大流SAPkuangbin模板

    hdu 1532 求1~n的最大流 #include<stdio.h> #include<string.h> #include<algorithm> #includ ...

  8. Linux 安装FTP服务

    Linux 安装FTP服务,简单入门 环境: 虚拟机:Oracle VM VirtualBox. 系统:CentOS 7. (1)判断是否安装了ftp: rpm -qa | grep vsftpd 或 ...

  9. 如何提高SMTP邮件的安全性?从而不被黑客窃听

    简单邮件传输协议(SMTP)用于在邮件服务器之间进行邮件传输,并且传统上是不安全的,因此容易被黑客窃听.命名实体的基于DNS的认证(国家统计局)用于SMTP提供了邮件传输更安全的方法,并逐渐变得越来越 ...

  10. 数据结构--排序--快排and冒泡(python)

    听说大厂面试,限时两分钟写出来快排... 闲着没事,写了一下... def Partition(L,low,high): pivotkey = L[low] while low<high: wh ...