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 ...
随机推荐
- ORA-28547: connection to server failed, probable Oracle Net admin error
现象 C:\Users\Administrator>sqlplus scott/tiger@192.168.1.11:1521/orcl SQL*Plus: Release 11.2.0.4.0 ...
- RestFramework之频率组件
一.频率组件的使用 频率组件的存在对我们这web开发有着很大的影像,它的作用就是限制用户在一段时间内访问的次数. 下面让我们介绍一下频率组件怎样使用 1.首先需要导入 from rest_framew ...
- DNS服务——搭建企业内网DNS服务器的作用
前言 DNS服务——服务端 和 客户端 配置 介绍了如何在DNS安装DNS服务,更改一下配置文件就可以依据根提示解析全球域名.既然使用互联网上的DNS服务器就可以解析全球域名,为何还要自掏腰包搭建DN ...
- PYTHON 爬虫 baidu美女图片
from urllib import requestimport re import osdef main(): #page=request.urlopen("http://image.ba ...
- JVM堆空间用途分析与划分依据
在上一次[https://www.cnblogs.com/webor2006/p/9876493.html]已经对JVM的内存空间的划分进行了理论化的学习,这次还是对上一次提到的理论进行进一步的补充, ...
- linux网络编程之socket编程(十五)
今天继续学习socket编程,这次主要是学习UNIX域协议相关的知识,下面开始: [有个大概的认识,它是来干嘛的] ①.UNIX域套接字与TCP套接字相比较,在同一台主机的传输速度前者是后者的两倍. ...
- python-selenium安装笔记
python-selenium操作火狐,谷歌,360,ie 亲测可用,windows环境 python3.6 由于python2到2020年不进行维护所有都用python3 selenium pip ...
- python中字符串离散化的例子
''' 问题:1.假设DataFrame中有一列名为type,其字段中内容为a,b,c 等用,隔开的值,如: type a,b,c a,f,x b,c,e ...统计type中每个类型出现的次数 并绘 ...
- H5--性能测试(PageSpeed Insights )
中文网站(不需要翻墙): http://www.googlespeed.cn 主要可实现: 1.测试手机与电脑打开的速度对比. 2.详细的测试结果 3.直观的统计数据,查看页面的共xx个请求.总共大小 ...
- js for/in循环及其它
for in 循环不仅可以遍历对象的属性,还可以遍历数组. Js 中为数组提供了多种遍历方式 const ary = ['a', 'b', 'c']; // 最基本的方式, 只能遍历下标有序递增的数组 ...