› 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 · 3042 views
    This topic created in 635 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   ·   Privacy   ·   Solana   ·   2258 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:54 · PVG 18:54 · LAX 03:54 · JFK 06:54
    ♥ Do have faith in what you're doing.