添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

函数:JSON_EXTRACT(json字段列名,"$.json属性名")

Mysql中表设计中某些预留字段,可扩展字段json字段,json中属性获取函数:

select JSON_EXTRACT(json字段的名称,"$.json的属性1")  as '别名' from db_name;

CREATE TABLE `student` (
  `sid` varchar(100) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `expand` json DEFAULT NULL,
  PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Student'

插入数据:

INSERT INTO amall_crawler.student (sid,name,expand) VALUES
	 ('1001','xiaoliu','{"sex": "man", "hobby": ["游泳", "打乒乓"], "address": {"detail": "某某小区某某栋0001", "city": "某某市"}}');

1) 单层属性值获取---获取expand的json字段中sex属性的值:
JSON_EXTRACT(字段名,"$.json属性名")
2) 多层属性值获取---获取expand的json字段中address属性下detail属性的值:
JSON_EXTRACT(JSON_EXTRACT(字段名,"$.json属性名1"),"$.json属性名2")

select
	name,
	JSON_EXTRACT(expand,
	"$.sex") as 'sex',
	JSON_EXTRACT(JSON_EXTRACT(expand, "$.address"),
	"$.detail") as 'addressDetail'
	student;

使用JSON_EXTRACT查出的json串中String类型的属性值,会带双引号,可以用replace函数将其替换掉

3) json字段的属性作为查询条件时,查询方式:
查询出sex = man的数据

select * from student where	JSON_EXTRACT(expand,"$.sex") = 'man';
我们有一个日志表,里面的data 字段 是保存不同对象的 json 数据,遇到想根据里面的 json 字段 内容 作为 条件 查询的情况 # mysql 根据 json 字段 内容 检索查询数据 mysql 5.7以上支持 json 的操作,以及增加了 json 存储 类型 一般 数据库 存储 json 类型 的数据会用 json 类型 或者text 类型 查询根据表 字段 json 内容 进行查询 1. 创建表 . 1)使用 字段 ->'$. json 属性 '进行查询 条件 2)使用 json _ extract 函数查询, json _ extract ( 字段 , 若 获取 的val本身为字符串,那么 获取 的val会被引号包起来,比如"tom",这种数据被解析到程序对象 时,可能会被转义为\“tom\”。与 获取 key-val一样,若 获取 的元素为字符串,默认的方式也会得到双引号包起来的字符,导致程序转义,方法也是利用 json _unquote函数,或者使用 ->> 代替-> json _ extract 函数 ,第一个参数content表示 json 数据,第二个参数为 json 路径,其 。结合前面介绍的两种 获取 方式,可以 获取 json 数据 的嵌套数据。将会把多个路径的数据组合成数组返回。 "access_token": "333d8c09-e522-4585-8cca-1d9c66e5cece", "token_type": "bearer", "refresh_token": "48a3e598-0e3e-4739-9e57-b301c1e3529d", "expire. Json 简介 Json (JavaScript Object Notation)这因为 Json 是一种轻量级的数据交换 格式 ,具有数据 格式 简单,读写方便易懂等很多优点。用它来进行前后端的数据传输,大大的简化了服务器和客户端的开发工作量。而且相对于XML来说,更加的轻量级,更方便解析。今天我们讲讲如何在python里玩转 Json 数据?在 Json ,遵循“key-value”的这样一种方式。比如最简单的这种:...