MySQL根据JSON字段的内容检索查询数据
- 使用 字段 ** -> ‘$.json’ ** 属性’ 进行查询条件以下这两种会快很多,可以自己测试
- 使用 ** json_extract ** 函数查询,json_extract(字段, “$.json属性”)
- 根据json数组查询,用 ** JSON_CONTAINS ** (字段, JSON_OBJECT(‘json属性’, “内容”))
MySQL5.7以上支持JSON的操作,以及增加了JSON存储类型
一般数据库存储JSON类型的数据会用JSON类型或者TEXT类型
注意:用JSON类型的话
1)JSON列存储的必须是JSON格式数据,否则会报错。
2)JSON数据类型是没有默认值的。
举个栗子
1、首先我们看到数据表中,Form_Value_一列是josn格式存在的,又想通过其中的一组或者几组键值对来进行查询。
2、通过以下语句就可以通过key,value来进行查询了,如果多个条件,正常加 and 就可以了。
注意:like 查询varchar类型时要将单箭头变为双箭头直接匹配值模糊查询 ->>
SELECT*FROM vx_live_room where info ->>'name'like'%测试%'
SELECT*FROM core_process where Form_Value_ ->'$.attendancer'='马立新'
3、如果是Mybatis框架,要把 > 符号转义,像这样用 <![CDATA[ ]]>
<![CDATA[ Form_Value_ ->'$.endDate'<#{endDate,jdbcType=VARCHAR} ]]>
扩充:
查询jaon串,返回json串里的某个字段
2.结果字段为json串
3.取json串中某个key的value值
4.->和->>区别,如图
-> 结果值带双引号"值"
->> 结果值不带引号
null依旧是null,不管符号是->还是->>
版权归原作者 朱念桐 所有, 如有侵权,请联系我们删除。