首页 > 数据库 >MySQL——json类型的应用

MySQL——json类型的应用

时间:2023-05-31 11:46:53浏览次数:36  
标签:SET name content test json MySQL 类型 id

在制作动态报表的时候,如果需要字段灵活配置,用 json 存储数据,可以让查询变得非常简单。

 

业务场景:

绩效系统中,需要从10个系统中抓取不同数据,并且性能不会太高,但是用于计算的只有其中 3 个,用哪 3 个看领导心情,设计一张表存储抓取到的数据。

1、傻瓜式做法,设计一张表,从字段 1 列到字段 3,用于存储抓到的数据(更过分地,直接预留10个字段);
2、想要优化好,数据用到啥取啥,取到的数据用 json 存储,使用的时候再进行解析。

CREATE TABLE `test_json` (
  `id` varchar(32) NOT NULL,
  `content` json DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

-- 设置内容
UPDATE test_json SET content='{"age":20, "name":"xiaoming"}' WHERE id = 'test';

-- 查询 json 中的一个字段
SELECT content->'$.name' FROM test_json where id = 'test';

-- 查询
SELECT content FROM test_json where id = 'test';

-- 更新字段
UPDATE test_json SET content = JSON_SET(content, '$.name', 'xiaodong') where id = 'test';
UPDATE test_json SET content = JSON_SET(JSON_SET(content, '$.age', 18), '$.name', 'xiaodong') where id = 'test';

-- 移除字段值
UPDATE test_json SET content = JSON_REMOVE(content, '$.name') where id = 'test';

-- 替换,原先无值,不会更新
UPDATE test_json SET content = JSON_REPLACE(content, '$.name', 'xiaoming') where id = 'test';

 

标签:SET,name,content,test,json,MySQL,类型,id
From: https://www.cnblogs.com/chenss15060100790/p/17445637.html

相关文章

  • mysql数据库自动删除
    关于早上发现数据库丢失,留下了一份文档 检查了下发现是命令的问题 由于使用了这条命令,导致后门被开了,真是血泪的教训。修改远程登录权限的话还是使用updateuser表来修改。......
  • java同步mysql的数据到PostgreSQL时报错ERROR: invalid byte sequence for encoding "
    最近,同事在做一个功能,通过java程序将mysql中的一张表的数据同步到pgsql中,在同步过程中,插入到pgsql中出现了如下错误:`###Errorupdatingdatabase.Cause:org.postgresql.util.PSQLException:ERROR:invalidbytesequenceforencoding"UTF8":0x00在位置:unnamedportalpa......
  • ​Python 3 新特性:类型注解——类似注释吧,反正解释器又不做校验
    Python3新特性:类型注解Crossin上海交通大学计算机应用技术硕士95人赞同了该文章前几天有同学问到,这个写法是什么意思:defadd(x:int,y:int)->int:returnx+y我们知道Python是一种动态语言,变量以及函数的参数是不区分类型。因此我们定义函数只需要这样写就可以了:def......
  • 关于mysql 创建索引报错 1071 specified key was too long ;max key length is 3027
    另一种张表也是相同的字段创建索引却能成功,在网上查了一些资料。后来发现是两张表字段都用的varchar类型,不过能成功建索引的表设置的长度是50,而不能成功的表里设置的255,修改字符长度就能成功建索引了。关于varchar(50)和varchar(255)的区别:https://dba.stackexchange.com/questio......
  • R数据类型
    数值(Numeric):用于表示实数,包括整数和浮点数。例如,3、3.14等。整数(Integer):用于表示整数值。在R中,整数可以通过在数字后面加上"L"或使用函数as.integer()进行显式转换。例如,3L、as.integer(5.8)等。字符串(Character):用于表示文本数据。字符串需要使用引号(单引号或双引号)括起来......
  • python内置库--json
    关于jsonJSON是一种按照JavaScript对象语法的数据格式相关介绍https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/JSON很多网页和app前后端数据交换的数据的格式就是json,打开F12或者抓包工具就可以看到py的json模块常用函数相关函数介绍json.dumps()......
  • 处理json
     load和loads的区别load():load()方法用于从文件中读取JSON数据,并将其转换为Python对象。它接受一个文件对象作为参数,并将文件中的JSON数据加载为Python对象loads():loads()方法用于将JSON字符串转换为Python对象。它接受一个字符串作为参数,并将其解析为Python对象 解......
  • json_decode的用法
    正常使用$arr=json_decode('{"name":"tom","age":10}',true);var_dump($arr);上面代码会输出数组错误的json格式怎么输出$arr=json_decode("name",true);var_dump($arr);//null项目里很多时候调用外部接口,有的外部接口返回json字符串,前段时间碰到了一个项目,调用......
  • python pickle to json
    ref:https://gist.github.com/Samurais/567ebca0f59c612eb977065008aad867 '''Convertapklfileintojsonfile'''importsysimportosimportpickleimportjsondefconvert_dict_to_json(file_path):withopen(file_path,&......
  • 关于MySQL的一些优化(单表访问)
    以此表为例CREATETABLE`single_table`(`id`intNOTNULLAUTO_INCREMENT,`key1`varchar(100)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL,`key2`intNULLDEFAULTNULL,`key3`varchar(100)CHARACTERSETutf8mb4COLLATEutf8mb......