[问题] 如何查询出 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]'); |