Sql 如何使用mariadb中的JSON函数从JSON数组中搜索记录
我正在mariaDB学习JSON函数Sql 如何使用mariadb中的JSON函数从JSON数组中搜索记录,sql,json,mariadb,Sql,Json,Mariadb,我正在mariaDB学习JSON函数 CREATE TABLE IF NOT EXISTS products ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, type VARCHAR(1) NOT NULL,
CREATE TABLE IF NOT EXISTS products (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
type VARCHAR(1) NOT NULL,
name VARCHAR(40) NOT NULL,
format VARCHAR(20) NOT NULL,
price FLOAT(5, 2) NOT NULL,
attr JSON NOT NULL
);
INSERT INTO products (type, name, format, price, attr) VALUES
('M', 'Aliens', 'Blu-ray', 13.99,'{"video": {"resolution": "1080p", "aspectRatio": "1.85:1"}, "cuts": [{"name": "Theatrical", "runtime": 138}, {"name":"Special Edition", "runtime": 155}], "audio": ["DTS HD", "Dolby Surround"]}');
INSERT INTO products (type, name, format, price, attr) VALUES
('B', 'Foundation', 'Paperback', 7.99, '{"author": "Isaac Asimov", "page_count": 296}');
我想知道有多少张唱片被剪切了。name=“戏剧性”
我在这里得到0个结果。如何从json数组中搜索数据?方括号应用于数组
您可以使用嵌套在JSON\u CONTAINS()
函数中的JSON\u EXTRACT(attr,“$.cuts[*].name”)
和“theatrial”
参数来确定cuts
数组的name
元素的元组是否包含“theatrial”
:
SELECT COUNT(*)
FROM `products`
WHERE JSON_CONTAINS( JSON_EXTRACT(attr, "$.cuts[*].name"), '"Theatrical"' )
SELECT COUNT(*)
FROM `products`
WHERE JSON_CONTAINS( JSON_EXTRACT(attr, "$.cuts[*].name"), '"Theatrical"' )