JSON Path语法
// 比较简单,举两个例子 set @jsonSource = { "aaa": [ {"ccc":"1"}, {"ccc":"2"}, ], "bbb":"bbb的值" }; @jsonSource-> "$.bbb" // 结果为 bbb的值 @jsonSource-> "$.aaa[*].ccc" // 结果为 ["1","2"] |
给JSON字段添加索引
Mysql 8.0.x版本后,支持对json字段创建索引,直接 create index 即可,需要使用cast方法将json目标字段转换成可以创建索引的类型。有两种情况:
普通索引:每条记录和json字段为1对1关系
多值索引:每条记录和json字段为1对多关系(对应array,或是jsonPath取值结果是array情况)
-- 普通索引 ADD INDEX index_modify_user((CAST(permission_json->'$.aaa' AS CHAR(64)))) -- 多值索引 (区别仅在于用cast 方法转化成一个 ARRAY) ADD INDEX index_modify_user((CAST(permission_json->'$.modify[*]' AS CHAR(64) ARRAY ))) |