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 · Jan 8, 2025 · 2596 views
    This topic created in 499 days ago, the information mentioned may be changed or developed.
    为啥编辑老是提示拦截
    Supplement 1  ·  Jan 9, 2025

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

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

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

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

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

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

    CREATE INDEX idx_attr_a_key ON table ((attr->>'$.a_key'));
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4104 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 10:12 · PVG 18:12 · LAX 03:12 · JFK 06:12
    ♥ Do have faith in what you're doing.