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

MySQL 5.7.22中如何按指定JSON键查询对应数据?

解决方案:MySQL 5.7.22查询JSON列指定键的数据

嘿,针对你要从functionalities表的JSON类型config列中提取show_image对应数据的需求,结合MySQL 5.7.22的特性,给你提供几种实用的实现方式:

1. 使用JSON_EXTRACT()函数(标准写法)

这是MySQL处理JSON提取最基础的函数,语法清晰直观:

SELECT JSON_EXTRACT(config, '$.show_image') AS show_image_data
FROM functionalities;
  • 说明:'$.show_image'是JSON路径表达式,$代表JSON根节点,.show_image指定要提取的键名。

2. 使用简写操作符->(等价于JSON_EXTRACT)

MySQL提供了更简洁的语法糖,->和JSON_EXTRACT()功能完全一致:

SELECT config->'$.show_image' AS show_image_data
FROM functionalities;

3. 使用->>操作符(提取无转义的字符串结果)

如果希望直接得到去除转义引号的纯字符串结果,可以用->>,它相当于JSON_UNQUOTE(JSON_EXTRACT(...)):

SELECT config->>'$.show_image' AS show_image_data_unquoted
FROM functionalities;

4. 过滤仅包含show_image键的行(贴合你的WHERE逻辑)

如果需要像你示例中那样,只返回存在show_image键的行,可以搭配JSON_CONTAINS_PATH()函数做过滤:

SELECT JSON_EXTRACT(config, '$.show_image') AS show_image_data
FROM functionalities
WHERE JSON_CONTAINS_PATH(config, 'one', '$.show_image') = 1;
  • 说明:'one'表示只要JSON中存在至少一个指定路径(这里就是$.show_image)就返回该行,完美匹配你需求里的过滤逻辑。

以上方法在MySQL 5.7.22版本中都是完全支持的,你可以根据实际输出需求选择合适的写法~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:57:24