只支持MySQL5.7以上的版本
user表中有如下数据:
id
profile
1
{“age”: 20, “name”: “吴彦祖”}
2
{“age”: 21, “name”: “陈伟霆”}
如果需要查询id
为1
的记录中profile
字段中age
属性的值:
SELECT id, `profile` -> '$.age' AS age FROM user;
id
age
1
20
如果需要查询profile
字段中age
属性值为20
的记录:
SELECT * FROM user WHERE JSON_EXTRACT(`profile`, "$.age") = 20;
JSON_EXTRACT(列名,“$.json某个属性”)