数据库中存储json格式的字段,一般量级比较大,如果其中一个字段特征去查询的话比较麻烦。如果按字符串使用like或者instr查询,数据量比较大的情况下效率会比较慢,而且不能精准定位,使用mysql带的json函数效率比较高.
MySQL5.7以上支持JSON的操作,一般数据库存储JSON类型的数据会用JSON类型或者TEXT类型.
本地建张表试一下
全部字段.png
select json_extract(info, "$.department") from testjson;
json_extract.png
select json_contains(info, json_object("$.powerfulkangfu",0)),name from testjson;
武功高强.png
select * from testjson where info -> '$.department' = '恒山派';
恒山派.png
select * from testjson where JSON_EXTRACT(info, '$.department') like '%华山%';
模糊华山派.png
select json_contains(info, json_object("$.powerfulkangfu",true)),name from testjson where info -> '$.department' = '恒山派';
恒山派高手.png
其中查询主要是使用json_contains和json_extract.
更多用法见官方文档:https://dev.mysql.com/doc/refman/5.7/en/json-function-reference.html
网友评论