我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中JSON字段数据类型怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中JSON字段数据类型怎么用

本文小编为大家详细介绍“MySQL中JSON字段数据类型怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL中JSON字段数据类型怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    前言

    JSON 类型是从 MySQL 5.7 版本开始支持的功能,MySQL 支持由RFC 7159定义的本机JSON数据类型,该类型可有效访问 JSON(JavaScript 对象 table 示法)文档中的数据。与将 JSON 格式的字符串存储在字符串列中相比,JSON数据类型具有以下优点:

    • 自动验证存储在JSON列中的 JSON 文档。无效的文档会产生错误。

    • 优化的存储格式。存储在JSON列中的 JSON 文档将转换为内部格式,从而可以快速读取文档元素。

    • JSON列不能具有非NULL的默认值。

    创建JSON值

    JSON类型字段可以是JSONObject,也可以是JSONArray类型,在 MySQL 中,JSON 值被编写为字符串。 MySQL 会解析在需要 JSON 值的上下文中使用的任何字符串,如果该字符串作为 JSON 无效,则会产生错误。这些上下文包括将值插入具有JSON数据类型的列中,以及将参数传递给需要 JSON 值的函数(在 MySQL JSON 函数的文档中通常显示为* json_doc 或 json_val *)。

    • JSON_TYPE()函数需要一个 JSON 参数,并尝试将其解析为 JSON 值。如果有效,则返回值的 JSON 类型,否则返回错误:

    MySQL中JSON字段数据类型怎么用

    搜索JSON类型数据

    SELECT * FROM sd_school_faq WHERE faq_similar_question -> '$[*].*' LIKE '%课表在哪里?%';

    MySQL中JSON字段数据类型怎么用

    • 路径可以包含***通配符:

    • .[*]求值为 JSON 对象中所有成员的值。

      • [*]计算 JSON 数组中所有元素的值。

      • prefix**suffix计算所有以命名前缀开头并以命名后缀结尾的路径。

    • 文档中不存在的路径(评估为不存在的数据)评估为NULL

    在 JSON 和非 JSON 值之间转换

    下 table 概述了在 JSON 值和其他类型的值之间进行转换时 MySQL 遵循的规则:

    table11.3 JSON 转换规则

    other typeCAST(其他类型的 AS JSON)CAST(JSON AS 其他类型)
    JSONNo changeNo change
    utf8 字符类型(utf8mb4utf8ascii)该字符串将解析为 JSON 值。JSON 值被序列化为utf8mb4字符串。
    其他字符类型其他字符编码将隐式转换为utf8mb4,并按 utf8 字符类型所述进行处理。JSON 值被序列化为utf8mb4字符串,然后转换为其他字符编码。结果可能没有意义。
    NULL结果为 JSON 类型的NULL值。Not applicable.
    Geometry types通过调用ST_AsGeoJSON()将几何值转换为 JSON 文档。非法操作。解决方法:将CAST(json_val AS CHAR)的结果传递给ST_GeomFromGeoJSON()
    所有其他类型结果是由单个标量值组成的 JSON 文档。如果 JSON 文档由目标类型的单个标量值组成,并且该标量值可以转换为目标类型,则成功。否则,返回NULL并产生警告。

    JSON 值的ORDER BYGROUP BY按照以下原则工作:

    • 标量 JSON 值的排序使用与前面的讨论相同的规则。

    • 对于升序排序,SQL NULL在所有 JSON 值(包括 JSON 空 Literals)之前进行排序;对于降序排序,SQL NULL对所有 JSON 值(包括 JSON 空 Literals)进行排序。

    • JSON 值的排序键受max_sort_length系统变量的值限制,因此仅在前max_sort_length个字节之后才不同的键比较相等。

    • 当前不支持对非标量值进行排序,并且会出现警告。

    对于排序,将 JSON 标量转换为其他一些本机 MySQL 类型可能是有益的。例如,如果名为jdoc的列包含 JSON 对象,其成员由id键和一个非负值组成,则使用此 table 达式按id值进行排序:

    ORDER BY CAST(JSON_EXTRACT(jdoc, '$.id') AS UNSIGNED)

    如果碰巧有一个生成的列被定义为使用与ORDER BY中相同的 table 达式,则 MySQL 优化器将识别出该列,并考虑将索引用于查询执行计划。

    JSON 值的汇总

    对于 JSON 值的汇总,与其他数据类型一样,将忽略 SQL NULL值。非NULL值将转换为数字类型并进行汇总,但MIN()MAX()GROUP_CONCAT()除外。尽管可能会发生截断和精度损失,但转换为数字应该为数字标量的 JSON 值产生有意义的结果。转换为其他 JSON 值的数量可能不会产生有意义的结果。

    读到这里,这篇“MySQL中JSON字段数据类型怎么用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    MySQL中JSON字段数据类型怎么用

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

    下载Word文档

    猜你喜欢

    MySQL中JSON字段数据类型怎么用

    本文小编为大家详细介绍“MySQL中JSON字段数据类型怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL中JSON字段数据类型怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言JSON 类型
    2023-07-02

    MySQL中JSON字段数据类型详解

    目录前言创建jsON值搜索JSON类型数据在 JSON 和非 JSON 值之间转换JSON 值的汇总总结前言JSON 类型是从 mysql 5.7 版本开始支持http://www.cppcns.com的功能,MySQL 支持由RFC 7
    2022-06-14

    mysql怎么修改表字段数据类型

    要修改MySQL表的字段数据类型,您可以使用ALTER TABLE语句。以下是一个示例,演示如何将表中的字段数据类型从INT更改为VARCHAR:ALTER TABLE 表名 MODIFY 列名 VARCHAR(255);请注意,此语句
    mysql怎么修改表字段数据类型
    2024-04-09

    mysql中json类型字段的基本用法实例

    目录前言基本环境jsON类型字段常用操作插入JSON类型数据查询JSON类型数据更新JSON类型数据中的特定字段匹配JSON类型数据中的特定字段结语前言mysql从5.7.8版本开始原生支持了JSON类型数据,同时可以对JSON类型字段中
    2022-08-12

    mysql怎么修改字段名和数据类型

    要修改字段名和数据类型,可以使用ALTER TABLE语句。以下是示例:修改字段名:ALTER TABLE table_name CHANGE old_column_name new_column_name data_type;例如,要将字
    mysql怎么修改字段名和数据类型
    2024-04-09

    PHP中怎么获取字段数据类型

    这篇文章给大家介绍PHP中怎么获取字段数据类型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。mysql_field_type()函数可获得字段的数据类型,该函数的语法格式如下。string mysql_field_ty
    2023-06-17

    Postgresql数据库中的json类型字段使用示例详解

    目录1. json概述2. PostgreSQL数据库中使用Json类型字段2.1. 创建表定义字段信息2.2. 增加2.3. 查询键值2.3.1. 查询键2.3.2. 查询值2.3.3. where查询条件使android用json键值作
    2023-02-09

    JSON字段类型在ORM中的使用是怎么样的

    JSON字段类型在ORM中的使用是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。JSON字段类型在ORM中的使用  ThinkPHP5.1版本正式发布已
    2023-06-02

    MySQL数据库中性别字段应该使用什么数据类型?

    在MySQL数据库中,性别字段通常可以使用ENUM类型来存储。ENUM是一种枚举类型,它允许我们在一组预定义的值中选择一个作为字段的值。在表示性别这样一个固定且有限的选项时,ENUM是一个很好的选择。让我们来看一个具体的代码示例:假设我
    MySQL数据库中性别字段应该使用什么数据类型?
    2024-03-14

    PostgreSQL中json数据类型怎么使用

    这篇文章主要介绍“PostgreSQL中json数据类型怎么使用”,在日常操作中,相信很多人在PostgreSQL中json数据类型怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PostgreSQL中
    2023-07-05

    MySql中怎么使用json_extract函数处理json字段

    这篇“MySql中怎么使用json_extract函数处理json字段”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySq
    2023-06-30

    MySQL怎么更新字段类型

    要更新MySQL表中字段的数据类型,需要使用ALTER TABLE语句。以下是更新字段类型的通用语法:ALTER TABLE table_name MODIFY column_name new_data_type;其中,table_nam
    MySQL怎么更新字段类型
    2024-04-09

    如何从空的 interface{} 类型访问 JSON 数据中的字段?

    大家好,我们又见面了啊~本文《如何从空的 interface{} 类型访问 JSON 数据中的字段?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面
    如何从空的 interface{} 类型访问 JSON 数据中的字段?
    2024-04-05

    编程热搜

    目录