mysql 和mssql2016中的json字段相关操作
Mysql:
mysql中有专门的Json字段,不是通用的varchar字段,可以保存key/value对,也可保存value集合。
可以增加、删除、修改Json中的某一字段,查询时可以为条件。
如果想以Json中的某一个key为索引,则需要建立一个计算字段,然后对计算字段建立索引,这样可以加快查询速度。
SELECT id,ff->'$.name' from t1 where ff->'$.name' like 'mus%' --查不到数据
SELECT id,ff->'$.name' from t1 where ff->'$.name' != 'mus' --这个可以
SELECT id,ff->'$.name' from t1 where ff->'$.name' = 'mus' --字符串型,可以用=和!=查询,但不能用like
SELECT id,ff,ff->'$.name' from t1 where ff->'$.id' !=0 --数字型可以大于,小于,等于,不等查询
UPDATE t1 SET ff = JSON_SET(ff,'$.id', 30,'$.url','www.muscleape.com') WHERE id = 1; --更新时JSON_SET可以更新json内部数据,可增加入新的key
INSERT INTO t1 (ff) VALUES ('{"id": 2,"name": "mus"}'); --可以像文本一样写入
以下参考:
https://www.jianshu.com/p/6a9ca839c5b5
https://www.cnblogs.com/helww/p/9330593.html
https://blog.csdn.net/stpeace/article/details/88595700
https://blog.csdn.net/weixin_34265814/article/details/91439439
MSSQL2016开始支持:
没有Json字段,使用nvarchar(max)来保存Json数据。
使用json_modify函数来修改、增加、删除Json中的元素,索引方式和mysql一样使用计算列字段。
参考:
https://docs.microsoft.com/zh-cn/archive/msdn-magazine/2017/april/cutting-edge-query-json-data-in-sql-server-2016
https://www.cnblogs.com/wenBlog/p/5817842.html
https://blog.csdn.net/ahang10001/article/details/102110980
https://www.jb51.net/article/174210.htm
http://www.sohu.com/a/293454973_120083365
https://www.jianshu.com/p/34b77a0fba6d
mysql 和mssql2016中的json字段相关操作的更多相关文章
- Mysql查询语句中字符型字段不区分大小写解决方法
项目中和前端联调的时候,发现Mysql查询语句中字符型字段值过滤是不区分大小写的,之前没有关注过这个设置,特意去网上看了下,原因是Mysql中“COLLATE”属性区分大小写,而该属性默认值为“utf ...
- MySQL 库、表、记录、相关操作(3)
MySQL 库.表.记录.相关操作(3) 单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数 ...
- grails项目中(DB的相关操作)
grails项目中(DB的相关操作) save:保存Domain对象的数据到对应的库表中(可能是insert也可能是update) findBy: 动态方法,查找并返回第一条记录,方法名可以变化 eg ...
- Mysql中处理JSON字段
处理json字段,可以用json_extract函数: select * from (select json_extract(ext_value,'$.high')+0 highx,batch_id ...
- mysql和SqlServer 中取得汉字字段的各汉字首字母
mysql 中取得汉字字段的各汉字首字母 这个转载于http://blog.csdn.net/lky5387/article/details/11973721 DELIMITER ;;CREATE ...
- MySQL 库、表、记录、相关操作(1)
库.表.记录.相关操作(1) 数据库配置 # 通过配置文件统一配置的目的:统一管理 服务端(mysqld) .客户端(client) # 配置了 mysqld(服务端) 的编码为utf8,那么再创建的 ...
- MySQL 库、表、记录、相关操作(2)
库.表.记录.相关操作(2) 字段操作 create table tf1( id int primary key auto_increment, x int, y int ); # 修改 alter ...
- Json概述以及python对json的相关操作
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- Json概述以及python对json的相关操作(转)
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...
随机推荐
- 通过 Java 压缩文件,打包一个 tar.gz 采集器包
一.如何通过 Java 打包文件 1.1 添加 Maven 依赖 <dependency> <groupId>org.apache.commons</groupId> ...
- 【SpringMVC】拦截器
一.概述 1.1 拦截器的异常场合 1.2 拦截器中的方法 二.示例 2.1 定义两个拦截器 2.2 配置拦截器 2.3 执行顺序 三.拦截器应用 3.1 需求 3.2 用户登陆及退出功能开发 3.3 ...
- Mysql 中的SSL 连接
Mysql 中的SSL 连接 以下来自网络参考和自己测试整理,没有查找相关资料.若有错误之处,欢迎指正. 当前的Mysql 客户端版本基本都不太能支持 caching_sha2_password 认证 ...
- DMA和通道的区别
转:https://wenku.baidu.com/view/7987ae5283c4bb4cf7ecd18e.html
- PAT基础级-钻石段位样卷2-7-3 大笨钟 (10 分)
微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉.不过由于笨钟自己作息也不是很规律,所以敲钟并不定时.一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那 ...
- IDEA实用教程(五)——配置IDEA的JVM内存值
---恢复内容开始--- 四. 配置IDEA的JVM内存值 IDEA默认配置的JVM内存值比较低,如果硬件配置较高,可以修改该设置. 该设置需要在工程界面进行. 该操作仅建议内存8G以上,64位操作系 ...
- orm多表查询基于双下划线
###########基于双下划线的跨表查询(基于join实现的)############# key: 正向查询按字段,反向查询按表名小写 1.查询python这本书出版社的名字 ret = Book ...
- Mybatis3.0_动态SQL元素:foreach-遍历集合_
foreach-遍历集合 -笔记要点 <!--foreach 遍历标签 collection : 指定要遍历的集合; list类型的参数会特殊处理封装在Map中,map的key就叫做list; ...
- Hibernate初探之单表映射——Hibernate概念及插件的安装
什么是ORM ORM(Object/Relationship Mapping):对象/关系映射 为什么要有ORM? 利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编 ...
- redis 事务 & 锁
参考:https://www.cnblogs.com/DeepInThought/p/10720132.html Redis不保证原子性:Redis中,单条命令是原子性执行的,但事务不保证原子性,且没 ...