You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中如何查询JSON数组任意位置的指定字符串?

解决JSON数组中搜索指定字符串的问题

你可以用MySQL的JSON_CONTAINS()函数直接判断目标字符串是否存在于JSON数组中,这比用JSON_EXTRACT()遍历数组更高效准确。

示例代码

直接匹配字符串(注意要给目标字符串套双引号,符合JSON格式对字符串的要求):

SELECT classification FROM Skills.skills 
WHERE JSON_CONTAINS(classification, '"Accounting"');

如果不想手动加双引号,也可以用JSON_QUOTE()函数自动处理格式:

SELECT classification FROM Skills.skills 
WHERE JSON_CONTAINS(classification, JSON_QUOTE('Accounting'));

额外选项:定位匹配位置

如果需要知道目标字符串在数组中的具体路径,可以用JSON_SEARCH()函数:

SELECT classification, JSON_SEARCH(classification, 'one', 'Accounting') AS match_position
FROM Skills.skills 
WHERE JSON_SEARCH(classification, 'one', 'Accounting') IS NOT NULL;

这里的'one'表示只返回第一个匹配的位置,换成'all'可以得到所有匹配的路径。

为什么之前的方法失效

用JSON_EXTRACT(classification, '$[*]')会返回整个JSON数组(比如["Accounting","Administration & Office Support",...]),你直接拿这个数组和单个字符串"Accounting"比较,类型和内容都不匹配,所以查不到结果。

内容的提问来源于stack exchange,提问作者thepunter99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:30:49