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. 在Python中使用protobuf2.6.1 string format utf-8 and unicode error

    版本信息: protobuf: v2.6.1 python: 2.7 关于在Python中使用protobuf时 string格式字段的编码问题 在python中编码格式多采用utf-8格式.而pro ...

  2. mysql两种备份方法总结:mysqldump 和 xtrabackup

    mysqldump工具基本使用 1. mysqldump [OPTIONS] database [tables…] 还原时库必须存在,不存在需要手动创建     --all-databases: 备份 ...

  3. jQuery实现动态时间

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...

  4. Windows系统下安装MySQL详细教程(命令安装法)

    1.安装包下载. 下载地址:https://dev.mysql.com/downloads/mysql/ 点击下载之后,可以选择注册Oracle账号,也可以跳过直接下载. 下载完成后,选择一个磁盘内放 ...

  5. gradle上sourceSets配置&同名文件合并问题

    gradle的sourceSets可以对不同的buildType, productFlavor,buildVariant设置不同的文件路径,进行多样化处理. sourceSets{ main{ man ...

  6. UIAlertView, UIAlertViewController

    iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.全新的UIPresentationController 在实现视图控制器间的过渡动画效果和自适应设备尺 ...

  7. Python小技巧:使用*解包和itertools.product()求笛卡尔积(转)

    leetcode上做提示时候看到有高人用这个方法解题 [问题] 目前有一字符串s = "['a', 'b'],['c', 'd']",想把它分开成为两个列表: list1 = [' ...

  8. Nginx配置https兼容http

    现象 如果一个https站点里面有引用一些http的静态资源,图片可以正常加载,但是js文件.css文件就会加载失败,如下图: 原因 为了解释这个问题,首先要理解一下Mixed Content的概念: ...

  9. pipeline语法学习日记

    1.pipeline 整合job的通用代码,比较基本 2.pipeline参数化构建

  10. ztree 获取CheckBox选中节点时,不获取选中上级父节点

    //将第三个参数改为false,表示不去勾选父节点下的所有子节点 zTreeObj.checkNode(node, true, false); setting.check.chkboxType = { ...