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

MySQL 8.0中如何为JSON字符串数组创建索引?

MySQL JSON字符串数组的多值索引创建方法

针对你提到的tableDemo表中JSONDEMO字段里的zipcode字符串数组,创建多值索引的语句如下:

CREATE INDEX idx_zipcode ON tableDemo ((CAST(JSONDEMO->>'$.zipcode' AS VARCHAR(255) ARRAY)));

关键说明:

  • JSONDEMO->>'$.zipcode':从JSON字段中提取zipcode数组,->>运算符返回无引号的JSON数组内容。
  • CAST(...) AS VARCHAR(255) ARRAY:将提取到的JSON数组转换为SQL字符串数组类型,VARCHAR(255)可根据实际存储的字符串长度调整(比如VARCHAR(100))。
  • 多值索引仅支持MySQL 8.0.14及以上版本,使用前请确认版本兼容性。

索引使用示例:

创建索引后,可通过以下方式查询包含特定字符串的记录:

  1. 使用MEMBER OF运算符:
SELECT * FROM tableDemo WHERE 'i am String' MEMBER OF(JSONDEMO->>'$.zipcode');
  1. 使用JSON_CONTAINS函数(注意第二个参数需带双引号,匹配JSON格式的字符串):
SELECT * FROM tableDemo WHERE JSON_CONTAINS(JSONDEMO->'$.zipcode', '"string"');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:07:05