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字段相关操作的更多相关文章

  1. Mysql查询语句中字符型字段不区分大小写解决方法

    项目中和前端联调的时候,发现Mysql查询语句中字符型字段值过滤是不区分大小写的,之前没有关注过这个设置,特意去网上看了下,原因是Mysql中“COLLATE”属性区分大小写,而该属性默认值为“utf ...

  2. MySQL 库、表、记录、相关操作(3)

    MySQL 库.表.记录.相关操作(3) 单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数 ...

  3. grails项目中(DB的相关操作)

    grails项目中(DB的相关操作) save:保存Domain对象的数据到对应的库表中(可能是insert也可能是update) findBy: 动态方法,查找并返回第一条记录,方法名可以变化 eg ...

  4. Mysql中处理JSON字段

    处理json字段,可以用json_extract函数: select * from (select json_extract(ext_value,'$.high')+0 highx,batch_id ...

  5. mysql和SqlServer 中取得汉字字段的各汉字首字母

    mysql 中取得汉字字段的各汉字首字母 这个转载于http://blog.csdn.net/lky5387/article/details/11973721 DELIMITER ;;CREATE  ...

  6. MySQL 库、表、记录、相关操作(1)

    库.表.记录.相关操作(1) 数据库配置 # 通过配置文件统一配置的目的:统一管理 服务端(mysqld) .客户端(client) # 配置了 mysqld(服务端) 的编码为utf8,那么再创建的 ...

  7. MySQL 库、表、记录、相关操作(2)

    库.表.记录.相关操作(2) 字段操作 create table tf1( id int primary key auto_increment, x int, y int ); # 修改 alter ...

  8. Json概述以及python对json的相关操作

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...

  9. Json概述以及python对json的相关操作(转)

    什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...

随机推荐

  1. MACOS 安装mysqlclient 的 Library not loaded错误

    报错场景 >>> import MySQLdb Traceback (most recent call last): File "<stdin>", ...

  2. Pycharm 社区版本Database Navigator 安装教程

    虽然Pycharm有专业版和社区版这两个版本,但是在大多数情况下我们都会选择社区版进行下载安装.为啥呢?因为社区版免费呗,而且能够基本满足我们的日常需求(这也就意味着社区版会比专业版少一些功能).针对 ...

  3. git使用——准备工作

    参考:如何在 Git 中重置.恢复,返回到以前的状态 初次运行 Git 前的配置 安装好Git后首先要做的便是配置Git环境.每台计算机上只需要配置一次,程序升级时会保留配置信息. 你可以在任何时候再 ...

  4. Java基本知识点o(1), o(n), o(logn), o(nlogn)的了解

    在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义: 这是算法的时空复杂度的表示.不仅仅用于表示时间复杂 ...

  5. CISCO设备配置SSH 登陆

    1. 设置设备域名CISCO ip domain name CISCO2.创建密钥Server(config)#crypto key generate rsa The name for the key ...

  6. CUDA中确定你显卡的thread和block数

    CUDA中确定你显卡的thread和block数 在进行并行计算时, 你的显卡所支持创建的thread数与block数是有限制的, 因此, 需要自己提前确定够用, 再进行计算, 否则, 你需要改进你的 ...

  7. java基础(5)---内存分配

    一.内存分配 如: 先写下面的源代码:  如果继续写:

  8. 【经典/基础BFS+略微复杂的题意】PAT-L3-004. 肿瘤诊断

    L3-004. 肿瘤诊断 在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环.给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积. 输入格式: 输入第一行给出4个正整数:M.N.L.T,其中M和N是 ...

  9. Spring Boot源码探索——自动配置的内部实现

    前面写了两篇文章 <Spring Boot自动配置的魔法是怎么实现的>和 <Spring Boot起步依赖:定制starter>,分别分析了Spring Boot的自动配置和起 ...

  10. machine learning(9) -- classification:Decision boundary

    machine learning(9) -- classification:Decision boundary 上图的decision boundary是一条直线,是属于预测函数的一个属性(当参数已经 ...