在MySQL中,可以使用JSON_CONTAINS函数来搜索JSON数组中的元素。这里有一个简单的例子:
假设有一个名为items的表,其中有一个名为attributes的列,包含JSON数组。
bash
CREATE TABLE items (
id INT AUTO_INCREMENT PRIMARY KEY,
attributes JSON
);
INSERT INTO items (attributes) VALUES
('["apple", "banana", "cherry"]'),
('["banana", "cherry", "date"]'),
('["apple", "banana", "date"]');
如果你想要搜索包含"banana"的attributes,可以使用以下查询:
bash
SELECT * FROM items
WHERE JSON_CONTAINS(attributes, JSON_OBJECT('key', 'banana'));
JSON数组
bash
INSERT INTO items (attributes) VALUES
('[1, 2, 3]'),
('[1, 104, 101]'),
('[102, 101, 202]');
如果要查询包含 101 这个数字的 attributes
bash
SELECT * FROM `items`
WHERE JSON_CONTAINS(`attributes`, CAST(101 AS JSON))