iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中的JSON字段List成员检查
  • 764
分享到

MySQL中的JSON字段List成员检查

2024-04-02 19:04:59 764人浏览 泡泡鱼
摘要

目录JSON字段List成员检查Mysql中jsON字段操作基本改变Json函数JSON字段List成员检查 文档 https://dev.mysql.com/doc/refman/8.0/en/json.htmlHtt

JSON字段List成员检查

文档

  • https://dev.mysql.com/doc/refman/8.0/en/json.html
  • Https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html

方法

JSON_CONTaiNS(target, candidate[, path])

value MEMBER OF(json_array)

查询示例

mysql> set @list = JSON_ARRAY(1, 2);
Query OK, 0 rows affected (0.01 sec)

mysql> select 1 MEMBER OF(@list);
+--------------------+
| 1 MEMBER OF(@list) |
+--------------------+
|         1 |
+--------------------+
1 row in set (0.00 sec)


mysql> SELECT JSON_CONTAINS(@list, '1');
+---------------------------+
| JSON_CONTAINS(@list, '1') |
+---------------------------+
|             1 |
+---------------------------+
1 row in set (0.01 sec)

MySQL中JSON字段操作

Mysql 自5.7之后增加了很多函数用于处理Json字串。方便实用。

基本改变

Json数组

["abc", 10, null, true, false]

Json对象:

{"k1": "value", "k2": 10}

JSON数组元素和JSON对象键值内允许嵌套

Json函数

  • JSON_TYPE():返回json字串类型
mysql> SELECT JSON_TYPE('["a", "b", 1]');
+----------------------------+
| JSON_TYPE('["a", "b", 1]') |
+----------------------------+
| ARRAY           |
+----------------------------+

mysql> SELECT JSON_TYPE('"hello"');
+----------------------+
| JSON_TYPE('"hello"') |
+----------------------+
| STRING        |
+----------------------+

mysql> SELECT JSON_TYPE('hello');
ERROR 3146 (22032): Invalid data type for JSON data in argument 1
to function json_type; a JSON string or JSON type is required.

 MySQL使用utf8mb4字符集和utf8mb4_bin排序规则处理JSON上下文中使用的字符串 。其他字符集中的字符串将utf8mb4根据需要转换。(对于ascii或 utf8字符集中的字符串,无需进行转换,因为ascii和utf8是的子集utf8mb4。一般将数据库字符集设置为utf8mb4)

  • JSON_ARRAY():将数值包装为json数组
mysql> SELECT JSON_ARRAY('a', 1, NOW());
+----------------------------------------+
| JSON_ARRAY('a', 1, NOW())       |
+----------------------------------------+
| ["a", 1, "2015-07-27 09:43:47.000000"] |
+----------------------------------------+
  • JSON_OBJECT():将数值包装为json对象
mysql> SELECT JSON_OBJECT('key1', 1, 'key2', 'abc');
+---------------------------------------+
| JSON_OBJECT('key1', 1, 'key2', 'abc') |
+---------------------------------------+
| {"key1": 1, "key2": "abc"}      |
+---------------------------------------+
  • JSON_MERGE():将多个json合并为一个
mysql> SELECT JSON_MERGE('["a", 1]', '{"key": "value"}');
+--------------------------------------------+
| JSON_MERGE('["a", 1]', '{"key": "value"}') |
+--------------------------------------------+
| ["a", 1, {"key": "value"}]         |
+--------------------------------------------+

Json字符串中的key-value访问

使用column-path运算符 ->得到字段中json某个key的值,但是值中的"""和"\"都会显示,如果不想显示,使用->>。

#创建表
CREATE TABLE facts (ids JSON);

#插入数据 这里要注意是否启用了服务器SQL模式,插入数据时要注意特殊符号
INSERT INTO facts VALUES (JSON_OBJECT('mascot', 'Our mascot is a dolphin named "Sakila".'));

#查看数据
mysql> select ids from facts;
+---------------------------------------------------------+
| ids                           |
+---------------------------------------------------------+
| {"mascot": "Our mascot is a dolphin named \"Sakila\"."} |
+---------------------------------------------------------+
1 row in set (0.00 sec)


mysql> SELECT ids->'$.mascot' FROM facts;
+---------------------------------------------+
| ids->'$.mascot'               |
+---------------------------------------------+
| "Our mascot is a dolphin named \"Sakila\"." |
+---------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT ids->>'$.mascot' FROM facts;
+-----------------------------------------+
| ids->>'$.mascot'          |
+-----------------------------------------+
| Our mascot is a dolphin named "Sakila". |
+-----------------------------------------+

#注意,这里访问json字段key使用单引号还是双引号取决于sql模式

读取json字段中某个key的值

SELECT JSON_EXTRACT('{"id": 14, "name": "Aztalan"}', '$.name');
+---------------------------------------------------------+
| JSON_EXTRACT('{"id": 14, "name": "Aztalan"}', '$.name') |
+---------------------------------------------------------+
| "Aztalan"                        |
+---------------------------------------------------------+

#去除值双引号
mysql> SELECT JSON_UNQUOTE(JSON_EXTRACT('{"id": 14, "name": "Aztalan"}', '$.name'));
+-----------------------------------------------------------------------+
| JSON_UNQUOTE(JSON_EXTRACT('{"id": 14, "name": "Aztalan"}', '$.name')) |
+-----------------------------------------------------------------------+
| Aztalan                                |
+-----------------------------------------------------------------------+

小结:

‘$.*’返回全部json
‘$.title’返回key=”title”的数据
‘$**.text’返回所有最底层key=”text”的数据
‘$.content[*].item1[*]’返回key=content的list的key=item1的list的所有内容

官网参考地址

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

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中的JSON字段List成员检查

本文链接: https://www.lsjlt.com/news/33852.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql怎么查询json字段
    在MySQL中查询JSON字段可以使用JSON_EXTRACT()函数。该函数用于提取JSON字段中的特定值或对象。 例如,假设有一...
    99+
    2024-04-09
    mysql json
  • mysql如何查询json内字段
    要查询JSON字段,可以使用MySQL的JSON_EXTRACT()函数。该函数用于从JSON数据中提取指定的键值对或数组元素。 例...
    99+
    2024-04-09
    mysql json
  • Mybatis中,映射mysql中的JSON字段
    数据库mysql中的的某一个字段,存放的是一个List 的集合,需要将字段对应到entity的某一个参数上,mapper.xml中使用 的方式直接进行字段映射时,会出现java.lang.Illega...
    99+
    2023-09-23
    mybatis mysql json
  • mysql根据json字段内容作为查询条件(包括json数组)检索数据
    最近用到了mysql5.7的json字段的检索查询,发现挺好用的,记录一下笔记我们有一个日志表,里面的data字段是保存不同对象的json数据,遇到想根据里面的json的字段内容作为...
    99+
    2024-04-02
  • mysql中如何取出json字段
    这篇文章主要介绍“mysql中如何取出json字段”,在日常操作中,相信很多人在mysql中如何取出json字段问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中如何取出json字段”的疑惑有所帮助!...
    99+
    2023-07-02
  • Mysql中如何处理JSON字段
    这篇文章给大家分享的是有关Mysql中如何处理JSON字段的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql能处理json。Mysql中处理JSON字段,可以用json_e...
    99+
    2024-04-02
  • mysql查询字段类型为json时的查询方式有哪些
    这篇文章主要为大家展示了“mysql查询字段类型为json时的查询方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql查询字段类型为json时的查...
    99+
    2024-04-02
  • Java中如何将json字符串转换成map/list
    目录将json字符串转换成map/list字符串,json,Map互相转换(各种转换都有)前提:使用jar包为fastjson程序如下将json字符串转换成map/list impo...
    99+
    2024-04-02
  • MySQL更新存放JSON的字段、\“转义成“的问题描述
    目录问题描述问题排查解决方案本篇介绍在执行MySQL线上变更时遇到的问题,表现为"更新JSON字段时,实际更新的值与SQL语句中的值不一致,JSON格式错误",如...
    99+
    2022-12-20
    MySQL JSON转义 MySQL更新存放JSON字段 MySQL线上变更问题 MySQL更新JSON字段
  • C#类的成员之Field字段的使用
     字段是在类中声明的成员变量,用来储存描述类特征的值,字段可以被该类中声明的成员函数访问,根据字段的访问控制,也可以在其他类中通过该类或该类的实例进行访问.字段可以是任意变...
    99+
    2024-04-02
  • MySql中的json_extract函数处理json字段详情
    目录前言1. 使用方式2. 使用演示3. 小结前言 在db中存储json格式的数据,相信大家都或多或少的使用过,那么在查询这个json结构中的数据时,有什么好的方法么?取出Strin...
    99+
    2024-04-02
  • MySQL更新存放JSON的字段、\“ 转义成 “的问题描述
    目录问题描述问题排查解决方案本篇介绍在执行mysql线上变更时遇到的问题,表现为"更新jsON字段时,实际更新的值与SQL语句中的值不一致,JSON格式错误",如下; 问题描述 处理线上问题,需要新插...
    99+
    2022-12-20
    MySQLJSON转义 MySQL更新存放JSON字段 MySQL线上变更问题 MySQL更新JSON字段
  • Mysql 中 json、JsonArray 类型字段中指定属性的模糊查询问题
    解决json类型字段的模糊查询: 存储的数据格式:{"type": "10", "mobile": "13545678900", "countryCode": "86"} select * from a where mo...
    99+
    2023-09-20
    mysql json
  • MySql模糊查询json关键字检索方案示例
    目录前言方案一:方案二:方案三:方案四(最终采用方案):总结前言 ​最近在项目中遇到这样一个需求:需要在数据表中检索包含指定内容的结果集,该字段的数据类型为text,存储的内容是js...
    99+
    2024-04-02
  • MySQL中JSON字段数据类型怎么用
    本文小编为大家详细介绍“MySQL中JSON字段数据类型怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL中JSON字段数据类型怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言JSON 类型...
    99+
    2023-07-02
  • Hibernate检查id字段的方法是什么
    这篇文章主要讲解了“Hibernate检查id字段的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate检查id字段的方法是什么”吧!当你想要创建一个将其它域对象保存在...
    99+
    2023-06-17
  • Mybatis-Plus怎么读写Mysql的Json字段
    本篇内容主要讲解“Mybatis-Plus怎么读写Mysql的Json字段”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis-Plus怎么读写Mysql的Json字段”吧!前置条件确保...
    99+
    2023-06-30
  • sql怎么查询json字段中的key是否存在
    在SQL中,可以使用JSON函数来查询JSON字段中的key是否存在。下面是一个例子,假设有一个名为`data`的JSON字段,其中...
    99+
    2023-08-25
    sql json
  • mysql查表里面的字段
    mysql查表里面的字段的方法:使用“SHOW FROM”语句配合FULL关键字来查询,语法“SHOW FULL COLUMNS FROM table_name”,可以显示指定数据表的所有字段信息。 mysql查表里面的字段的方法第一种: ...
    99+
    2023-09-04
    mysql 数据库 java
  • 利用Mybatis向PostgreSQL中插入并查询JSON字段
    目录应用场景介绍数据insert数据selectBATCH 批量插入前言: 这里我使用的是TimescaleDB,加了一个时间戳字段,不过没差。关于PostgreSQL中J...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作