【易客吧】_全网激活码总代_激活码商城

您现在的位置是:首页 > 热门资讯 > 正文

热门资讯

MySQL 中 JSON 字符串的深入解析:揭开 JSON 查询的奥秘 (mysql中使用什么语句来更新表中的记录)

用户投稿2024-04-12热门资讯21

简介

JSON(JavaScript Object Notation)是一种轻量级数据交换格式,它在 Web 开发中广泛用于传输数据。MySQL 从 5.7 版本开始支持 JSON 数据类型,允许用户将 JSON数据存储在数据库中。本文将深入探讨 MySQL 中 JSON 字符串,包括其存储结构、查询技术以及更新记录的语句。

JSON 存储结构

MySQL 将 JSON 数据存储为一个单独的二进制格式。它使用一种称为 "JSON 文档" 的内部结构,该结构包含 JSON 字符串中的所有键值对。JSON 文档是一个键值对的有序集合,其中键是字符串,值可以是字符串、数字、布尔值或 JSON 数组。 MySQL 中 JSON 字符串的深入解析:揭开 查询的奥秘 (mysql中使用什么语句来更新表中的记录) 第1张

JSON 查询技术

MySQL 提供了多种方法来查询 JSON 数据,包括:JSON_EXTRACT() 函数:从 JSON 字符串中提取特定值。JSON_SEARCH() 函数:在 JSON 字符串中搜索特定值或模式。JSON_VALUE() 函数:从 JSON 字符串中返回指定路径的值。JSON_QUERY() 函数:使用 JSONPath 表达式从 JSON 字符串中查询数据。

更新记录中的 JSON 字符串

有两种主要方法可以在 MySQL 中更新表中记录中的 JSON 字符串:使用 JSON_SET() 函数:该函数允许您修改 JSON 字符串中的特定值。使用 JSON_REPLACE() 函数:该函数替换整个 JSON 字符串。使用 JSON_SET() 函数更新记录中的 JSON 字符串 sql UPDATE table_name SET json_column = JSON_SET(json_column, '$.key', 'new_value') WHERE id = 1;此语句将更新表 `table_name` 中 `id` 为 `1` 的记录中的 `json_column` 列。它将 `$.key` 路径下的值更新为 `new_value`。使用 JSON_REPLACE() 函数更新记录中的 JSON 字符串 sql UPDATE table_name SET json_column = JSON_REPLACE(json_column, '$.key', 'new_value') WHERE id = 1;此语句将更新表 `table_name` 中 `id` 为 `1` 的记录中的 `json_column` 列。它将 `$.key` 路径下的所有值替换为 `new_value`。

示例

假设我们有一个名为 `employees` 的表,其中包含一个名为 `json_data` 的 JSON 列。该列存储了每个员工的个人信息,如下所示: json {"name": "John Doe","age": 30,"address": {"street": "Main Street","city": "New York","state": "NY"} }使用 JSON_EXTRACT() 函数提取员工的姓名 sql SELECT JSON_EXTRACT(json_data, '$.name') FROM employees WHERE id = 1;此查询将返回员工的姓名,即 "John Doe"。使用 JSON_SEARCH() 函数搜索员工的年龄 sql SELECT JSON_SEARCH(json_data, 'one', '$.age') FROM employees WHERE id = 1;此查询将返回员工的年龄,即 "30"。使用 JSON_VALUE() 函数获取员工地址的街道 sql SELECT JSON_VALUE(json_data, '$.address.street') FROM employees WHERE id = 1;此查询将返回员工地址的街道,即 "Main Street"。使用 JSON_QUERY() 函数查询员工的信息 sql SELECT JSON_QUERY(json_data, '$..name') AS name,JSON_QUERY(json_data, '$..age') AS age,JSON_QUERY(json_data, '$..address.city') AS city FROM employees WHERE id = 1;此查询将返回员工的信息,包括姓名、年龄和地址的城市。使用 JSON_SET() 函数更新员工的姓名 sql UPDATE employees SET json_data = JSON_SET(json_data, '

mysql json字符串查询

注意一:字段类型为varchar、char、text等字符类型注意二:内容为json 注意三:mysql服务器版本为5.7及以上 语法:select * from 表名 where字段->$.属性=查询内容; select * from table1 wherecol1->$=xiaoming;

mysql 5.7 json 增删改查怎么写

mySQL中的JSON操作

创建单个json数组

创建单个对象,并返回该对象

将其他类型的值转换成JSON类型来获取json值

将 json 值作为参数传入,如果值有效,则返回其 json 类型,否则报错

将两个或多个 json 值合并为一个 json 并返回最终值

合并两个或多个 json 值,但不合并重复键的值,如果出现重复键,仅保留最后一个的值

经过函数转换得到的 json 是区分大小写的,原因在于转换后的字符集格式为 utf8mb4 和 utf8mb4_bin ,因为 utf8mb4_bin 是二进制排序规则,所以区分大小写

因为区分大小写,所以 json 中的 null 、true 和 false 都必须用小写字母编写

直接插入键值对语句和用 JSON_OBJECT 转换成json值存入的差别在于,前者需要双反斜杠转义字符,而后者只需要单反斜杠转义字符

当需要存储的内容如下

使用直接插入的方法时:

使用 JSON_OBJECT 时

案例

因为 $[1] 和 $[2] 计算为非标量值, 所以它们可以用作选择嵌套值的更具体的路径表达式的基础。例子:

结合 JSON_SET``JSON_INSERT``JSON_REPLACE``JSON_REMOVE 的使用

JSON_SET 替换存在的路径的值, 并为不存在的路径添加值

JSON_INSERT 添加新值, 但不替换现有值:

JSON_REPLACE 替换现有值并忽略新值:

JSON_REMOVE 使用一个或多个路径, 这些路径指定要从文档中删除的值。返回值是原始文档减去由文档中存在的路径选择的值:

若对本页面资源感兴趣,请点击下方或右方图片,注册登录后

搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源

如有其他疑问,请咨询右下角【在线客服】,谢谢支持!

MySQL 中 JSON 字符串的深入解析:揭开 查询的奥秘 (mysql中使用什么语句来更新表中的记录) 第2张

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
欢迎你第一次访问网站!