mysql8.0 JSON_CONTAINS的使用说明

目录
  • JSON_CONTAINS的使用
    • 语法
    • 案例
  • JSON_CONTAINS函数问题
    • 结构如下

JSON_CONTAINS的使用

语法

JSON_CONTAINS(json_doc, val[, path])

案例

select * from tb
    where info->'$.name' = '特价促销'  or JSON_CONTAINS(info->'$[*].name', '"特价促销"', '$')
SET @json = '{"A": 0, "B": {"C": 1}, "D": 2}';

SELECT JSON_CONTAINS(@json, '2', '$.A');
+----------------------------------+
| JSON_CONTAINS(@json, '2', '$.A') |
+----------------------------------+
|                                0 |
+----------------------------------+

SELECT JSON_CONTAINS(@json, '2', '$.D');
+----------------------------------+
| JSON_CONTAINS(@json, '2', '$.D') |
+----------------------------------+
|                                1 |
+----------------------------------+

SELECT JSON_CONTAINS(@json, '{"C": 1}', '$.A');
+-----------------------------------------+
| JSON_CONTAINS(@json, '{"C": 1}', '$.A') |
+-----------------------------------------+
|                                       0 |
+-----------------------------------------+

SELECT JSON_CONTAINS(@json, '{"C": 1}', '$.B');
+-----------------------------------------+
| JSON_CONTAINS(@json, '{"C": 1}', '$.B') |
+-----------------------------------------+
|                                       1 |
+-----------------------------------------+

JSON_CONTAINS函数问题

mysql 存的是[14,15]这种数据结构 查询的解决办法

结构如下

学生类:

@Column(value = "subject_ids", type = MySqlTypeConstant.TEXT)
@ColumnComment(value = "科目。可多选,格式如[1,2,3]")
private List<Long> subjectIds;

数据库类型:text

mysql 存储类型: [14,15]

这个时候根据科目ID去查询有那些学生选择了14这个科目得时候就不能用in这个语法了

这个时候就可以使用

SELECT * FROM `t_student` where  JSON_CONTAINS(subject_ids, '14')

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL中json字段的操作方法

    MySQL5.7.8中引入了json字段,这种类型的字段使用的频率比较低,但是在实际操作中,有些业务仍然在用,我们以此为例,介绍下json字段的操作方法: 还是从例子看起: mysql> create table test1(id int,info json); Query OK, 0 rows affected (0.02 sec) mysql> insert into test1 values (1,'{"name":"yeyz","age

  • MySQL处理JSON常见函数的使用

    官方文档:JSON Functions Name Description JSON_APPEND() Append data to JSON document JSON_ARRAY() Create JSON array JSON_ARRAY_APPEND() Append data to JSON document JSON_ARRAY_INSERT() Insert into JSON array -> Return value from JSON column after evaluati

  • Mysql怎么存储json格式数据详解

    目录 前言 JSON 数据类型推荐使用在不经常更新的静态数据存储 查询 json数据 增加索引 使用场景 总结 前言 Mysql5.7版本以后新增的功能,Mysql提供了一个原生的Json类型,Json值将不再以字符串的形式存储,而是采用一种允许快速读取文本元素(document elements)的内部二进制(internal binary)格式.在Json列插入或者更新的时候将会自动验证Json文本,未通过验证的文本将产生一个错误信息 JSON 数据类型推荐使用在不经常更新的静态数据存储 创

  • mysql8.0 JSON_CONTAINS的使用说明

    目录 JSON_CONTAINS的使用 语法 案例 JSON_CONTAINS函数问题 结构如下 JSON_CONTAINS的使用 语法 JSON_CONTAINS(json_doc, val[, path]) 案例 select * from tb     where info->'$.name' = '特价促销'  or JSON_CONTAINS(info->'$[*].name', '"特价促销"', '$') SET @json = '{"A"

  • Ubuntu Server 16.04下mysql8.0安装配置图文教程

    Ubuntu Server 16.04下mysql8.0安装配置图文教程 1.从Mysql官网上下载安装文件.有两种方式可供选择: 使用APT安装方式安装 使用完整的安装包进行安装 sudo dpkg -i mysql-apt-config_0.8.6-1_all.deb 2.更新系统安装源 sudo apt-get update 3.安装Mysql服务 sudo apt-get install mysql-server 4.修改Mysql Server的字符集 要修改字符集,首先得找到Mysq

  • mysql8.0.2离线安装配置方法图文教程

    离线安装MySQL_8.0.2方法,供大家参考,具体内容如下 从MySQL官网中获取了下面这个压缩包: 解压之后变成这个样子: 文件里面是这个样子: 下面开始了,请注意. 第一大步:配置my.ini文件 内容如下: [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录,若报错用反斜杠 basedir=D:\\tools\\ mysql-8.0.2-dmr

  • mysql8.0.0 winx64.zip解压版安装配置教程

    本文记录了mysql8.0.0 winx64.zip解压版安装教程,具体内容如下 1.自己到mysql官网下载mysql-8.0.0-dmr-winx64.zip解压缩安装包 2.下载页面地址:官网地址 3.解压缩到任意目录(我自己是D:\DevTools\mysql-8.0.0) 4.配置环境变量添加path路径为你的mysql8.0.0路径下面的bin目录(我的目录是D:\DevTools\mysql-8.0.0\bin) 5.到你的解压目录下面修改default-my.ini如下图标识 b

  • mysql-8.0.11-winx64.zip安装教程详解

    下载zip安装包: MySQL8.0 For Windows zip包下载地址:https://dev.mysql.com/downloads/file/?id=476233,进入页面后可以不登录.后点击底部"No thanks, just start my download."即可开始下载. 或直接下载:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 环境:Windows 10 一,安装 1.

  • Linux yum 命令安装mysql8.0的教程详解

    一 ,做好安装前的清理工作 rpm -pa | grep mysql 或者 rpm -qa | grep -i mysql yum remove mysql-xxx-xxx find / -name mysql rm -rf /xxx/xxx/xxx 二 , 下载对应的安装包 下载链接:https://dev.mysql.com/downloads/repo/yum/  三 , 安装mysql 执行rpm文件 rpm -ivh mysql57-community-release-el7-11.n

  • windows10系统安装mysql-8.0.13(zip安装) 的教程详解

    安装环境说明 •系统版本:windows10 •mysql版本:mysql-8.0.13-winx64.zip •下载地址:http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.13-winx64.zip 解压安装包 •解压路径:D:\develop\software •解压后mysql根目录:D:\develop\software\mysql-8.0.13-winx64 原则: 安装目录不能有空格.不能有中文 配置文件 •my.i

  • mysql8.0.11 winx64手动安装配置教程

    首先跟大家唠一唠家常,随着MySQL迅速的更新,MySQL突飞猛进已经更新到了8.0版本,那么它和我们之前用的5.X版本有什么明显的区别那?首先给大家看下MySQL5.X自带表的查询速度 之后献上MySQL8.0的自带表的查询速度 一样的数据结果显而易见,MySQL8.0的坑我是走了个遍,为了让大家少走弯路,献上以下手动安装方法 1. 官网下载并解压 我下载了mysql-8.0.11-winx64,下载地址 直接点击我红色记号笔圈出的超链接,这句话的中文意思是:不用了,直接开始下载 2. 设置系

  • mysql8.0 windows x64 zip包安装配置教程

    mysql 8 windows 版本zip方式安装步骤(下载地址) 1.解压ZIP文件到指定目录下:如D:\mysql-8.0.11-winx64 2.新建my.ini配置文件并粘贴修改如下内容:(1)baseidr路径  (2)datadir路径 [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D:\\mysql-8.0.11-w

  • mysql8.0.11 winx64安装配置方法图文教程(win10)

    mysql 8.0.11 winx64安装教程记录如下,分享给大家 1.进入地址: 下载mysql-8.0.11-winx64 2.解压zip包,并将解压文件放入一个文件夹下,如图: 3.配置环境变量(目的是为了避免在CMD窗口下操作时反复切换路径) 在Path下添加 D:\Program Files\mysql-8.0.11-winx64\bin 4.编写配置文件 我们发现解压后的目录并没有my.ini(或my-default.ini)文件,没关系可以自行创建.在安装根目录下添加 my.ini

随机推荐