
[问题] 如何查询出 json_data 字段 里面所有项的任意一项,包含 1 的数据。v2 大神们帮忙瞅瞅撒
[备注] 每个 json_data 字段内都只有 3 项( country、province、city ),格式统一为{"country":[],"province":[],"city":[]}
--创建表 CREATE TABLE json_test ( id INT (11) AUTO_INCREMENT PRIMARY KEY, json_data JSON #这是要查询的字段 ) ENGINE INNODB ; --插入数据,json 内包含 3 项 country、province、city、district INSERT INTO `json_test` (json_data) VALUES ('{ "country": [11,22,1], "province": [11,22,33], "city": [11,22] }'); INSERT INTO `json_test` (json_data) VALUES ('{ "country": [1,22,33], "province": [11,1,33], "city": [11,1] }'); 1 xjmroot OP 解决了,使用 json_contains+JSON_EXTRACT 就可以 这样查询 SELECT * FROM `json_test` WHERE json_contains(JSON_EXTRACT(json_data,'$.city'), '[1]'); |