前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在MySQL中搜索JSON数据

如何在MySQL中搜索JSON数据

作者头像
Lemon黄
发布2020-04-14 19:19:46
5.2K0
发布2020-04-14 19:19:46
举报
文章被收录于专栏:Lemon黄Lemon黄

从MySQL 5.7.8开始,MySQL支持本机JSON数据类型。在本教程中,我们将学习如何在MySQL中搜索JSON数据。

样本数据

出于演示目的,假设我们创建了一个包含以下数据的数据库表:

代码语言:javascript
复制
+-------------------------------+
| data                          |
+-------------------------------+
| {"id": "4", "name": "Betty","mobile_no.":"921213"}  |
+-------------------------------+

列“data”是JSON类型。当前,它包含具有三个字段的用户JSON数据:

  • ID
  • 名称
  • 手机号码。
选择一个JSON字段

要从JSON中选择特定字段,我们可以使用JSON_EXTRACT函数。例如,选择名称字段:

代码语言:javascript
复制
SELECT JSON_EXTRACT(data,'$.name') AS  name FROM users;

这将输出

代码语言:javascript
复制
"Betty"
从选择结果中删除双引号

您可能已经注意到在前面的示例中双引号。要从选择结果中删除双引号,我们可以使用JSON_UNQUOTE函数:

代码语言:javascript
复制
SELECT JSON_UNQUOTE(JSON_EXTRACT(data,'$.name')) AS  name FROM users;

这将输出

代码语言:javascript
复制
Betty
在选择路径中使用点符号

在我们的示例“data”字段的数据中,它包含一个名为“ mobile_no”的JSON字段,请注意结尾的点“.”的表示法。不能直接在选择字段中使用点符号,因为它将被视为分母。

要在选择路径中使用点符号,我们可以用双引号将其引起来:

代码语言:javascript
复制
SELECT JSON_UNQUOTE(JSON_EXTRACT(data,'$."mobile_no."')) AS  mobile FROM users;

这将输出:

代码语言:javascript
复制
921213
使用所选字段作为条件

通常将选定的JSON字段用作条件。为此,我们可以使用HAVING子句:

代码语言:javascript
复制
SELECT JSON_UNQUOTE(JSON_EXTRACT(data,'$.id')) AS  id FROM users HAVING id = 1;
结束

我们希望以上的使用示例对您有所帮助!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lemon黄 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 样本数据
  • 选择一个JSON字段
  • 从选择结果中删除双引号
  • 在选择路径中使用点符号
  • 使用所选字段作为条件
  • 结束
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档