V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
Vesc
V2EX  ›  MySQL

各位 Mysql 大佬,问一个 8.0 版本 json 的问题

  •  
  •   Vesc · 20 小时 58 分钟前 · 565 次点击
    为啥编辑老是提示拦截
    第 1 条附言  ·  5 小时 53 分钟前

    有一个 json 字段假设为 attr 字段,内容为:

    {
    "a_key":"xxx",
    "b_key":[1,2,3]
    }
    

    目前我对 json 字段可以用官方文档的多值索引,

    多值索引可以使用 JSON_CONTAINS 查询,并且命中索引,我现在想对 a_key 做查询,在不使用虚拟列的情况下如何做索引呢?

    5 条回复    2025-01-09 11:53:55 +08:00
    esee
        1
    esee  
       20 小时 48 分钟前
    拦截?你的格式不对吧.不是标准的 json 格式
    Vesc
        2
    Vesc  
    OP
       20 小时 37 分钟前
    有一个 json 字段假设为 attr 字段,内容为:
    ```
    {
    "a_key":"xxx",
    "b_key":[1,2,3]
    }
    ```
    目前我对 json 字段可以用官方文档的多值索引,

    多值索引可以使用 JSON_CONTAINS 查询,并且命中索引,我现在想对 a_key 做查询,在不使用虚拟列的情况下如何做索引呢?
    Vesc
        3
    Vesc  
    OP
       20 小时 36 分钟前
    没选 markdown
    Vesc
        4
    Vesc  
    OP
       20 小时 28 分钟前
    为啥建索引的 sql 也没法发出来
    bzj
        5
    bzj  
       3 小时 13 分钟前
    多值索引只针对 json 数组,键值对用前缀索引就行了

    CREATE INDEX idx_attr_a_key ON table ((attr->>'$.a_key'));
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5543 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 07:07 · PVG 15:07 · LAX 23:07 · JFK 02:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.