”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用 WHERE 子句在 MySQL 中查询 JSON 数据?

如何使用 WHERE 子句在 MySQL 中查询 JSON 数据?

发布于2024-12-22
浏览:785

How to Query JSON Data in MySQL using the WHERE Clause?

如何在 MySQL 中查询 JSON 数据

在 MySQL 数据库中,JSON 对象可以存储在表列中。但是,如果没有适当的技术,运行利用这些 JSON 字段的查询可能会很困难。本指南提供了使用 WHERE 子句轻松查询 JSON 数据的方法,使开发人员能够根据 JSON 对象属性过滤和检索特定记录。

利用 JSON_EXTRACT 函数

For MySQL 5.7 及更高版本中,JSON_EXTRACT 函数是从 WHERE 子句中的 JSON 对象中提取特定值的有效工具。此函数采用两个参数:

  • json_document: 从中提取值的 JSON 对象。
  • path: A JSON指定对象内目标值位置的路径表达式。

考虑原始查询中提供的示例表以及列“json_data”包含 JSON 对象。要查询表中“title”属性包含字符串“CPU”的行,可以使用以下查询:

SELECT user_id, json_data
FROM articles
WHERE JSON_EXTRACT(json_data, '$.title') LIKE '%CPU%';

此查询利用 JSON_EXTRACT 函数从“json_data”列中的每个 JSON 对象中检索“title”属性的值。然后,它会过滤结果以仅包含提取的标题值包含指定子字符串的行。

最新教程 更多>
  • 插入数据时如何修复“常规错误:2006 MySQL 服务器已消失”?
    插入数据时如何修复“常规错误:2006 MySQL 服务器已消失”?
    插入记录时如何解决“一般错误:2006 MySQL 服务器已消失”介绍:将数据插入 MySQL 数据库有时会导致错误“一般错误:2006 MySQL 服务器已消失”。当与服务器的连接丢失时会出现此错误,通常是由于 MySQL 配置中的两个变量之一所致。解决方案:解决此错误的关键是调整wait_tim...
    编程 发布于2024-12-22
  • 在 Go 中使用 WebSocket 进行实时通信
    在 Go 中使用 WebSocket 进行实时通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    编程 发布于2024-12-22
  • Go处理数据后如何高效释放内存?
    Go处理数据后如何高效释放内存?
    查询Go中的内存释放原问题:如何释放未使用的内存,特别是变量占用的内存,处理后释放吗?详细说明:功能getURL 下载 20MB 以下的文件,并将其内容存储在名为 body 的字节片中。虽然功能正常,但这会累积内存使用量。目标是在处理完 body 后释放这块内存。综合响应:Go 中的内存管理:Go ...
    编程 发布于2024-12-22
  • 为什么切换到 JDK 10 后 Eclipse 无法找到我的 XML 类?
    为什么切换到 JDK 10 后 Eclipse 无法找到我的 XML 类?
    Eclipse 无法定位 JDK 10 构建路径转换后的 XML 类:解决方案尝试将 Maven 项目的构建路径切换到 JDK 10 时在 Eclipse 中,用户可能会遇到 Eclipse 构建过程无法找到 XML 相关类(包括 javax.xml.xpath.XPath)的问题, org.w3c...
    编程 发布于2024-12-22
  • 如何在 JSON 中序列化 Python 日期时间对象?
    如何在 JSON 中序列化 Python 日期时间对象?
    日期时间对象的 JSON 序列化当尝试使用 jsonify() 函数将包含日期时间对象的 Python 字典转换为 JSON 时,您可以遇到错误“datetime.datetime 不可 JSON 序列化”。出现此错误的原因是 JSON 本身不支持日期时间对象。要解决此问题并成功序列化字典,您可以使...
    编程 发布于2024-12-22
  • 如何避免 C++ 类方法中的隐藏变量?
    如何避免 C++ 类方法中的隐藏变量?
    C 中的阴影变量 在类中定义变量时,C 允许在不同作用域中使用具有相同名称的变量。这种现象称为“影子变量”,可能会导致混乱和意外行为。在给定的类定义中:class Measure { int N; double measure_set[]; char nomefile[]; double T; };...
    编程 发布于2024-12-22
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-12-22
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-12-22
  • 如何将 Bootstrap 轮播标题垂直居中并将其稍微向左放置?
    如何将 Bootstrap 轮播标题垂直居中并将其稍微向左放置?
    垂直对齐 Bootstrap 轮播标题要使轮播标题垂直居中并将其稍微向左放置,您可以利用 CSS 属性的变换翻译Y function.HTML:<!-- start JumboCarousel --> <div id="jumboCarousel" class=...
    编程 发布于2024-12-22
  • 如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    MySQL配置不正确:相对路径的问题在Django中运行python manage.py runserver时,可能会遇到以下错误:ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-...
    编程 发布于2024-12-22
  • CommandType.StoredProcedure 或 CommandType.Text:何时应在 C# 中使用每个存储过程?
    CommandType.StoredProcedure 或 CommandType.Text:何时应在 C# 中使用每个存储过程?
    CommandType.StoredProcedure 与 CommandType.Text 存储过程在 C# 中执行存储过程时,开发人员可能想知道以下优点:使用 CommandType.StoredProcedure 与 CommandType.Text。本文探讨了差异并提供了有关何时使用每种方法...
    编程 发布于2024-12-22
  • 如何在 Apache FOP 生成的 PDF 中使用 SimSun 显示汉字?
    如何在 Apache FOP 生成的 PDF 中使用 SimSun 显示汉字?
    Apache FOP 使用 SimSun 显示汉字很多用户都遇到过汉字显示为“####”的问题使用 Apache FOP 生成的 PDF 文档。解决这个问题涉及三个步骤。首先,需要在 FO 文件中指定所需的字体系列。默认情况下,FOP 使用 Helvetica 字体,该字体可能不支持中文字符。要指定...
    编程 发布于2024-12-22
  • 如何从 MySQL 日期时间字段中减去小时?
    如何从 MySQL 日期时间字段中减去小时?
    在 MySQL 中从日期时间减去小时数由于 GMT 问题,您想要从日期时间字段中减去 3 小时。实现此目的的一种方法是使用 DATE_SUB() MySQL 函数。解决方案:SELECT DATE_SUB(column, INTERVAL 3 HOUR)....通过将列替换为日期时间字段,此查询将从...
    编程 发布于2024-12-22
  • HTML 格式标签
    HTML 格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2024-12-22
  • 除了“if”语句之外:还有什么地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    除了“if”语句之外:还有什么地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    无需强制转换即可上下文转换为 bool您的类定义了对 bool 的显式转换,使您能够在条件语句中直接使用其实例“t”。然而,这种显式转换提出了一个问题:“t”在哪里可以在不进行强制转换的情况下用作 bool?上下文转换场景C 标准指定了四种值可以根据上下文转换为的主要场景bool:语句:if、whi...
    编程 发布于2024-12-22

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3