mysql有没有json类型?

mysql有没有json类型?,第1张

概述mysql有没有json类型

MysqL有Json类型。MysqL从5.7版本开始,引入了JsON数据类型,可以直接 *** 作Json数据;但MysqL5.7版本以下,在表中保存JsON格式类型的数据,则需要依靠varchar或者text之类的数据类型。

MysqL中的JsON类型

Json是一个非常好用的数据类型,在MysqL5.7之前人们都是用string来储存Json的,但是这样有个问题就是不能 *** 作Json,5.7以后就可以直接 *** 作Json数据了。

创建没什么好说的就是Json 不用带长度默认为0更新 、和插入可以用string插入查询、个人不喜欢把数据交给后台处理,那就交给数据库处理吧例子如下:数据库某张表有个content_Json字段,里面有这样的数据!
{  "bill": [    {      "bill": [        {          "ID": "C81AEAD03F90000142E81B405F6FADC0",          "uuID": "cfd872541b3b4507a50c2b2eda6bef28",          "billID": "kjdzyljgmzsfzypj",          "pageno": [],          "billver": "V1",          "billname": "新增测试",          "fjNumber": "",          "truename": "",          "allPageno": [            {              "top": 13,              "left": 7            }          ],          "billValue": {},          "isOtherZL": "",          "billNumber": "",          "fjTMNumber": ""        },        {          "ID": "C81AED69D6400001A07818551D9EBEC0",          "uuID": "05d87c8052cd44209c684407d200b7ec",          "billID": "opztsfpsgd",          "pageno": [],          "billver": "V1",          "billname": "发票申购",          "fjNumber": "",          "truename": "",          "allPageno": [            {              "top": 13,              "left": 7            }          ],          "isOtherZL": "",          "billNumber": "",          "fjTMNumber": ""        }      ],      "index": "",      "dependBjBill": {        "formula": "",        "keyvIEw": ""      },      "codeCondition": {        "formula": "",        "keyvIEw": ""      },      "billRuleCondition": {        "formula": "",        "keyvIEw": ""      }    },    {      "bill": [        {          "ID": "C81AED84903000019B29EAB0196014CE",          "uuID": "0d93fe614d09489cbad8fa5a3d160289",          "billID": "kjdzcwgwht",          "pageno": [],          "billver": "V1",          "billname": "财务顾",          "fjNumber": "",          "truename": "",          "allPageno": [            {              "top": 39,              "left": 7            }          ],          "isOtherZL": "",          "billNumber": "",          "fjTMNumber": ""        }      ],      "index": "",      "dependBjBill": {        "formula": "",        "keyvIEw": ""      },      "codeCondition": {        "formula": "",        "keyvIEw": ""      },      "billRuleCondition": {        "formula": "",        "keyvIEw": ""      }    }  ],  "questions": [],  "relyonCondition": {}}

结构是这样的,我们要查询最底层uuID!按条件查bill下是一个数组 里面的bill还是一个数组那么要查最底层的uuID怎么查呢?


个人更喜欢用类似lambda这种方法毕竟这是一个有逼格又好看的 *** 作:

SELECT content_Json->'$.bill[*].bill[*].uuID' from  b WHERE JsON_CONTAINS(content_Json->'$.bill[*].bill[*].uuID' ,'["cfd872541b3b4507a50c2b2eda6bef28"]')

查询结果

代码分析:
content_Json->’$.bill[].bill[].uuID’ ;

表示content_Json字段
"$"是必须符号 点代表对象
*代表全部

那么代码意思就是查询content_Json字段里面全部bill(第一个)中全部bill(第二个)的uuID组成一个数组返回;
where后面跟着的条件的意思是 存在某个值 这个值可以是一个也可以是多个
JsON_CONTAINS(字段,参数);
字段必须是要查的指定值如 content_Json->’$.bill[].bill[].uuID’ ;
参数必须是Json类型 string是不行的。

推荐教程:mysql视频教程 总结

以上是内存溢出为你收集整理的mysql有没有json类型?全部内容,希望文章能够帮你解决mysql有没有json类型?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1150979.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存