mysql json 数组怎么搜索

在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))
相关推荐
少晓年1 分钟前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql
SelectDB32 分钟前
Apache Doris AI RAG 实战:从基础 RAG 到知识图谱增强的技术能力与选型
数据库
SelectDB43 分钟前
电商企业 PostgreSQL 迁移 Apache Doris:80TB 分析数据统一平台技术能力与实践
数据库
SelectDB1 小时前
阶跃星辰 Agent 可观测:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB1 小时前
ApacheDoris Iceberg V3 湖仓 DML:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB1 小时前
ApacheDoris Python UDF:SQL 调用 Python 的技术能力、选型对比与实践
数据库
Crazy________1 小时前
Redis03:持久化存储,大key分析,主从复制及哨兵模式
数据库·redis·容器
Zhu7581 小时前
使用helm在k8s集群部署MySQL单实例,支持当前所有主版本的最新子版本
mysql·adb·kubernetes
自由能燃气设备2 小时前
燃气容积式热水器厂家选购指南:2026年商用热水设备采购避坑手册
大数据·数据库·数据仓库·人工智能
oradh2 小时前
Oracle数据文件的大小和数量的限制总结
数据库·oracle·数据文件大小限制·数据文件数量限制