当前位置: 首页 > news >正文

mysql 对json的处理?

MySQL从5.7版本开始支持JSON数据类型,并提供了多种函数来查询和处理JSON数据。以下是一些基本的操作和函数:

  1. 创建包含JSON列的表
    可以直接在表定义中指定某列为JSON类型。

    CREATE TABLE my_table (
      id INT NOT NULL AUTO_INCREMENT,
      data JSON,
      PRIMARY KEY(id)
    );
    
  2. 插入JSON数据
    插入时可以直接使用JSON字符串。

    INSERT INTO my_table (data) VALUES ('{"key": "value"}');
    
  3. 查询JSON数据

    • 使用->操作符可以查询JSON字段中的特定键值。
    • ->>操作符与->类似,但它会去掉结果周围的引号(适用于MySQL 5.7.13及以上版本)。
    SELECT data->'$.key' AS value FROM my_table;
    
  4. 修改JSON数据
    使用JSON_SET()JSON_REPLACE()JSON_REMOVE()等函数来更新JSON文档的部分内容。

    • JSON_SET():如果路径不存在则创建,存在则更新。
    • JSON_REPLACE():只替换已存在的值。
    • JSON_REMOVE():移除指定路径的元素。
    UPDATE my_table SET data = JSON_SET(data, '$.newKey', 'newValue') WHERE id = 1;
    
  5. 其他有用的JSON函数

    • JSON_EXTRACT():提取JSON值,类似于->操作符。
    • JSON_KEYS():返回对象的顶层键作为JSON数组。
    • JSON_CONTAINS():检查是否包含某个值或JSON文档。
    • JSON_ARRAY_APPEND()JSON_ARRAY_INSERT():向JSON数组追加或插入值。
  6. 索引JSON数据
    虽然不能直接对JSON列建立索引,但可以通过虚拟列(generated column)提取需要的JSON属性并对其进行索引。

    ALTER TABLE my_table ADD COLUMN key_value VARCHAR(100) GENERATED ALWAYS AS (data->>'$.key') VIRTUAL;
    CREATE INDEX idx_key_value ON my_table(key_value);
    

这些只是MySQL处理JSON的一些基础功能,根据你的具体需求,你可以探索更多高级用法。如果你有更具体的场景或者问题,欢迎提供更多信息,我会尽力帮助你解决。

相关文章:

  • AI安全学习(刚开始,未完版)
  • 【C++基础】Lambda 函数 基础知识讲解学习及难点解析
  • OpenCV旋转估计(4)生成一个字符串表示的匹配图函数 matchesGraphAsString()
  • 区块链学习总结
  • DDT数据驱动
  • 说一下yolo的一些概念 和 自己对 置信度阈值 和图像处理模板匹配的理解
  • java设计模式之建造者模式《装修启示录》​
  • 基于DrissionPage的DY无水印视频采集
  • C++与OO思想的联系
  • React 18 如何定义变量,及赋值 与渲染
  • python网络爬虫开发实战之网页数据的解析提取
  • docker常见的命令详细介绍
  • java小白日记38(集合-List)
  • 来源于胡椒的亚甲二氧桥CYP450-文献精读119
  • Android Window浮窗UI组件使用JetPack
  • 剑指 Offer II 111. 计算除法
  • 如何在 Linux 系统中部署 FTP 服务器:从基础配置到安全优化
  • Softmax温度调节与注意力缩放:深度神经网络中的平滑艺术
  • iStoreOS软路由对硬盘格式化分区(转化ext4)
  • Redisson分布式锁(超时释放及锁续期)
  • 玉渊谭天丨中方为何此时同意与美方接触?出于这三个考虑
  • 101条关于减重的知识,其中一定有你不知道的
  • 山寨“小米”智能马桶、花洒销售额过亿,被判赔3500万元
  • “救护车”转运病人半路加价,从宝鸡到西安往返都要多收钱
  • 一网红被指涉脱衣殴打霸凌事件,沈阳警方:刑拘1人,处罚5人
  • 住宿行业迎“最火五一”:数千家酒店连续3天满房,民宿预订量创历史新高