Mysql内储存JSON字符串根据条件进行查询

2022-02-17

目录
  • 前言
  • 一、Json是什么?
  • 二、不同情况
    • 1.模糊查询json类型字段
    • 2.精确查询json类型字段
    • 3.模糊查询JsonArray类型字段
    • 4.精确查询JsonArray类型字段
  • 总结

    前言

    JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串可以表示数组和复杂的对象,而不仅仅是键和值的简单列表,在Mysql中存储Json字符串可以极大的简便存储的复杂度,而与此同时,读取数据库也就成了很多人首先遇到的问题。

    示例:{ “key”: “value” }

    一、Json是什么?

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

    二、不同情况

    1.模糊查询json类型字段

    存储的数据格式(字段名 people_json):

    {“name”: “zhangsan”, “age”: “13”, “gender”: “男”}

    代码如下(示例):

    select * from table_name  where people_json->'$.name' like '%zhang%'
    

    2.精确查询json类型字段

    存储的数据格式(字段名 people_json):

    {“name”: “zhangsan”, “age”: “13”, “gender”: “男”}

    代码如下(示例):

    select * from table_name  where people_json-> '$.age' = 13
    

    3.模糊查询JsonArray类型字段

    存储的数据格式(字段名 people_json):

    [{“name”: “zhangsan”, “age”: “13”, “gender”: “男”}]

    代码如下(示例):

    select * from table_name  where people_json->'$[*].name' like '%zhang%'
    

    4.精确查询JsonArray类型字段

    存储的数据格式(字段名 people_json):

    [{“name”: “zhangsan”, “age”: “13”, “gender”: “男”}]

    代码如下(示例):

    select * from table_name  where JSON_CONTAINS(people_json,JSON_OBJECT('age', "13"))
    

    总结

    针对数据库中存储的不同Json类型,sql语句已经拥有着简便的方法,只需要了解便可以轻松使用。

    到此这篇关于Mysql内储存JSON字符串根据条件进行查询的文章就介绍到这了,更多相关Mysql JSON字符串查询内容请搜索北冥有鱼以前的文章或继续浏览下面的相关文章希望大家以后多多支持北冥有鱼!

    《Mysql内储存JSON字符串根据条件进行查询.doc》

    下载本文的Word格式文档,以方便收藏与打印。