需求描述:

  今天看mysql中的json数据类型,涉及到一些使用,使用到了函数json_extract来

  获取json字段中某个key的值,在此记录下.

操作过程:

1.查看包含json字段的表信息

mysql> desc tab_json;
+-------+------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra          |
+-------+------------+------+-----+---------+----------------+
| id    | bigint(20) | NO   | PRI | NULL    | auto_increment |
| data  | json       | YES  |     | NULL    |                |
+-------+------------+------+-----+---------+----------------+
2 rows in set (0.00 sec) mysql> show create table tab_json;
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tab_json | CREATE TABLE `tab_json` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `data` json DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec) mysql> select * from tab_json;
+----+----------------------------------------------------------------+
| id | data                                                           |
+----+----------------------------------------------------------------+
|  1 | {"Tel": "132223232444", "name": "david", "address": "Beijing"} |
|  2 | {"Tel": "13390989765", "name": "Mike", "address": "Guangzhou"} |
+----+----------------------------------------------------------------+
2 rows in set (0.00 sec)

备注:data字段就是json的数据类型,由键值对组成.

2.json_extract函数的使用

mysql> select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel");
+--------------------------------------------------------------+
| json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel") |
+--------------------------------------------------------------+
| "13240133388" |
+--------------------------------------------------------------+
1 row in set (0.00 sec) mysql> select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.name");
+---------------------------------------------------------------+
| json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.name") |
+---------------------------------------------------------------+
| "Zhaim" |
+---------------------------------------------------------------+
1 row in set (0.00 sec)

备注:这个查询时直接对json对象进行操作.

3.对tab_json表使用json_extract函数

mysql> select json_extract(data,'$.name') from tab_json;
+-----------------------------+
| json_extract(data,'$.name') |
+-----------------------------+
| "david" |
| "Mike" |
+-----------------------------+
2 rows in set (0.00 sec) mysql> select json_extract(data,'$.name'),json_extract(data,'$.tel') from tab_json; #如果查询没有的key,那么是可以查询,不过返回的是NULL.
+-----------------------------+----------------------------+
| json_extract(data,'$.name') | json_extract(data,'$.tel') |
+-----------------------------+----------------------------+
| "david" | NULL |
| "Mike" | NULL |
+-----------------------------+----------------------------+
2 rows in set (0.00 sec) mysql> select json_extract(data,'$.name'),json_extract(data,'$.address') from tab_json;
+-----------------------------+--------------------------------+
| json_extract(data,'$.name') | json_extract(data,'$.address') |
+-----------------------------+--------------------------------+
| "david" | "Beijing" |
| "Mike" | "Guangzhou" |
+-----------------------------+--------------------------------+
2 rows in set (0.00 sec)

备注:通过json_extract函数,获取到了json对象的特定key的值.

文档创建时间:2018年6月5日14:25:41

mysql中json_extract函数的使用?作用是什么?的更多相关文章

  1. MySQL中count函数使用方法详解

      count函数是用来统计表中或数组中记录的一个函数,下面我来介绍在MySQL中count函数用法与性能比较吧. count(*) 它返回检索行的数目, 不论其是否包含 NULL值. SELECT ...

  2. 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)

    一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...

  3. mysql中now()函数的使用,还有oracle的sysdate,可能埋下的坑

    mysql中now()函数的使用,还有oracle的sysdate 在需求中如果系统中药添加当前操作的时间那么很简单的一个操作在写sql的时候直接在这个字段对应的位置写上now()函数就可以了,这样就 ...

  4. MySQL中concat函数(连接字符串)

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  5. Mysql中的函数

    什么是函数 mysql中的函数与存储过程类似,都是一组SQL集: 与存储过程的区别 函数可以return值,存储过程不能直接return,但是有输出参数可以输出多个返回值: 函数可以嵌入到sql语句中 ...

  6. MySQL中concat函数

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  7. mysql中INSTR函数的用法

    mysql中INSTR函数的用法 INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTo ...

  8. MySQL中group_concat函数-和group by配合使用

    MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔 ...

  9. MySQL中时间函数NOW()和SYSDATE()的区别

    mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...

随机推荐

  1. Could not autowire field: private java.lang.Integer com.taotao.sso.service.impl.UserServiceImpl.SSO_

    @Value("REDIS_USER_SESSION_KEY") private String REDIS_USER_SESSION_KEY; 1 2 改正: @Value(&qu ...

  2. pdf ppt word office转图片 教学白板

    https://zh-cn.libreoffice.org/ http://www.imagemagick.org/script/ 首先用libreoffice将ppt转换为pdf格式,然后再用con ...

  3. 2013Hulu校园招聘笔试题

    填空题:1.中序遍历二叉树,结果为ABCDEFGH,后序遍历结果为ABEDCHGF,先序遍历结果为?  FCBADEGH  如下图所示: 2.对字符串HELL0_HULU中的字符进行二进制编码,使得字 ...

  4. 一圖讓你看懂javascript原型鏈

    每個對象的原型(protype)是一個對象 每個對象都有一個內置屬性protype(__pro__)指向一個對象

  5. 多变量频率统计——r

    例如有X1,X2,..,Xn个变量,我需要对每一个变量进行频次统计,如果一个一个求解的话非常麻烦,如table(X1), table(X2), ... ,table(Xn).有没有简单的语句一次性求解 ...

  6. Enums and Lookup Tables with EF Code First

    With EntityFramework’s support for enums, there is no longer any need to include lookup tables in th ...

  7. 文本编辑工具(sublime text 2)

    学习地址: http://www.iplaysoft.com/sublimetext.html 下载地址:http://www.sublimetext.com

  8. 第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门搜索

    第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门 我的搜素简单实现原理我们可以用js来实现,首先用js获取到 ...

  9. Java如何暂停线程一段时间?

    在Java编程中,如何暂停线程一段时间? 以下示例显示如何通过创建sleepThread()方法来暂停线程一段时间. package com.yiibai; public class Suspendi ...

  10. e609. Listening to All Focus Changes Between Components in an Application

    To listen to focus change events between components, install a listener with the keyboard focus mana ...