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

MySQL的Json类型个人用法详解

前言

虽然MySQL很早就添加了Json类型,但是在业务开发过程中还是很少设计带这种类型的表。少不代表没有,当真正要对Json类型进行特定查询,修改,插入和优化等操作时,却感觉一下子想不起那些函数怎么使用。比如把json里的某个键和值作为SQL条件,修改某个键下的子键的值,其中可能会遇到数组形式的Json或者键名是字符串的数字修改异常等问题。那么,以下是小北在业务中常遇到的Json类型操作汇总了。

查询

1. 查询普通键

以下示例是从goods表的price字段里取出price键的值,可以依次往下取值,就是price.嵌套键名即可。

select json_extract(price, "$.price") as de from goods where id = 159540

2. 查询字符串类型的数字键

虽然以上能解决大部分取值,但有时候的json嵌套里有字符串类型的数字键名,如下图的json,要取出字段下sku键名的 "45453"键algorithm的值。

select json_extract(price, "$.sku.\"45453\".algorithm") as de from price where id = 159540

3. 查询数组类的Json指定值

以上的两种是我们常见的对象类,但当出现数组类时,就没有键名了,取值只需要指定索引即可,如下分别是查询某值和根据json的某值作为查询条件。

select JSON_EXTRACT(`crumbs`, $[1]) as one_crumbs from comment where id = 4565
select * from comment where JSON_EXTRACT(`crumbs` ,'$[1]') = 256

4. 查询Json里是否包含某个值

select * from goods_item where goods_id=10263 and JSON_CONTAINS(item_value->'$', concat(43318,''));
select * from goods_item where goods_id=10263 and JSON_CONTAINS(item_value, concat(43318,''));
select * from goods_item where goods_id=10263 and JSON_CONTAINS(item_value, concat(43318,''),'$');

5. 查询Json长度

以下的goods_img是一个数组类的Json字段,通过长度作为SQL的查询条件。

select id, stock_no, goods_img from goods_item where state = 1 and JSON_LENGTH(goods_img) < 3

更新

1. 修改Json字段下指定键的值

update price set price = json_set(price, "$.attr.\"1280\".price_old", 300) where id in (171314)

相关文章:

MySQL的Json类型个人用法详解

前言 虽然MySQL很早就添加了Json类型&#xff0c;但是在业务开发过程中还是很少设计带这种类型的表。少不代表没有&#xff0c;当真正要对Json类型进行特定查询&#xff0c;修改&#xff0c;插入和优化等操作时&#xff0c;却感觉一下子想不起那些函数怎么使用。比如把json里的…...

VUE 程序的执行过程(非常非常重要)

在Vue.js应用程序中&#xff0c;index.html和main.js的执行顺序是&#xff1a; 1. 首先&#xff0c;浏览器加载index.html文件。 2. 在index.html文件中&#xff0c;通过<script>标签引入了main.js文件。 3. 当浏览器遇到<script>标签时&#xff0c;它会停止解析H…...

指定cv::cuda::GpuMat创建所在的GPU卡

目录 1. 背景2. 函数说明3. 代码 1. 背景 在多卡服务器运行多应用时&#xff0c;要将应用跑在不同的GPU上&#xff0c;就需要通过代码指定所运行的GPU&#xff0c;cv::cuda::GpuMat创建时&#xff0c;同样需要指定创建所对应的GPU。 2. 函数说明 cv::cuda::setDevice 是 Ope…...

Camunda 7.x 系列【43】事务子流程

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 概述2. 和 ACID 的区别3. 取消和补偿事件3.1 取消结束事件3.2 取消边界事件3.3 补偿边界…...

vscode设置的json的配置(个人怕忘了做个记录,各位不用看)

{//导入文件时是否携带文件的扩展名"path-autocomplete.extensionOnImport": true,// 配置路径提示"path-autocomplete.pathMappings": {"": "${folder}/src"},"liveServer.settings.CustomBrowser": "microsoft-edge&…...

HJ17 坐标移动

Powered by:NEFU AB-IN Link 文章目录 HJ17 坐标移动题意思路代码 HJ17 坐标移动 题意 开发一个坐标计算工具&#xff0c; A表示向左移动&#xff0c;D表示向右移动&#xff0c;W表示向上移动&#xff0c;S表示向下移动。从&#xff08;0,0&#xff09;点开始移动&#xff0c;…...

【postgresql基础入门】 新建数据库服务集群目录,定制属于自己的独享数据区

初始化集群 ​专栏内容&#xff1a; postgresql内核源码分析手写数据库toadb并发编程 ​开源贡献&#xff1a; toadb开源库 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君…...

808协议是指中国国标GB/T 32960-2017《道路车辆运行数据远程监管与服务》通信协议,也被称为JT/T808协议

808协议是指中国国标GB/T 808协议是指中国国标GB/T 32960-2017《道路车辆运行数据远程监管与服务》通信协议&#xff0c;也被称为JT/T808协议。该协议规定了车辆与监管平台之间的通信规范&#xff0c;用于实现对道路车辆的远程监管和服务。 JT/T808协议主要包含以下几个方面的…...

DDD 与 CQRS 才是黄金组合

在日常工作中&#xff0c;你是否也遇到过下面几种情况&#xff1a; 使用一个已有接口进行业务开发&#xff0c;上线后出现严重的性能问题&#xff0c;被老板当众质疑&#xff1a;“你为什么不使用缓存接口&#xff0c;这个接口全部走数据库&#xff0c;这怎么能抗住&#xff01…...

运维Shell脚本小试牛刀(八): case模式忽略命令行参数大小写演示

运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 运维Shell脚本小试牛刀(三)::$(cd $(dirname $0)&#xff1b; pwd)命令详解 运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客 Cenos7安装小火车程序动画 运维Shell脚本小试…...

【个人博客系统网站】项目的发布 · 通过公网IP访问我们的网站 · 思考总结

【JavaEE】进阶 个人博客系统&#xff08;6&#xff09; 文章目录 【JavaEE】进阶 个人博客系统&#xff08;6&#xff09;1. 项目发布1.1 后端代码修改1.1.1 数据库密码1.1.2 端口号修改1.1.3 文件保存地址修改1.1.4 静态资源映射修改 1.2 云服务器1.2.1 建库建表1.2.2 必要…...

网络类型(通信分类)

网络类型是根据数据链路层所使用的协议及规则进行划分&#xff0c;大致可分为两类网络&#xff1a; 点到点&#xff08;p2p&#xff0c;point to point&#xff09;MA&#xff08;multiple access&#xff09;多路访问&#xff1a;BMA、NBMA 不同的网络类型实际为不同的数据链…...

python基础语法(一)

目录 常量和表达式变量和类型变量是什么变量的语法定义变量使用变量 变量的类型整形浮点数(小数)字符串布尔其他 变量为什么会有这么多类型动态类型特征 常量和表达式 python中有许多和C语言相同的知识,但是也有一些不同的知识,比如: print(1 2 - 3)打印12-3的结果 print(1 …...

C语言学习笔记——常见问题

VS执行结果一闪而过 生成的 *.exe 文件打开时会一闪而过&#xff0c;从而观察不到其运行的结果————这是因为 main() 函数结束时&#xff0c;DOS 窗口会自动关闭 1、通过改变设置来解决 按以下顺序打开配通过改变设置来置窗口&#xff1a;项目->属性->配置属性->…...

使用GPU虚拟化技术搭建支持3D设计的职校学生机房(云教室)

背景 学校为职业学校&#xff0c;计算机教室需要进行Maya、Adobe Illustrator、Adobe Dreamweaver、Adobe PhotoShop等软件的教学。每个教室为35用户。资源需求为4核、8G内存、80G硬盘。 基于桌面虚拟化VDI技术的机房在成本、可管理性方面&#xff0c;相对于传统胖终端的机房…...

【C++入门】C语言的不足之处

概要 C入门主要讲的是C语言的一些不足&#xff0c;C作为补充&#xff0c;来补充C的不足之处 C的关键字有63个&#xff0c;C语言有32个&#xff08;作为了解&#xff0c;不需要专门记&#xff09; 变量的命名规则&#xff1a; 变量名必须以字母或下划线开头。变量名只能包含字…...

【已解决】oracle获取最近2学年的数据

已解决 &#xff1a;oracle获取最近2学年的数据 SELECT * FROM (SELECT * FROM xx.JWXT_XSKB WHERE AND xn IN (‘2023-2024’,‘2022-2023’)); 问题 某某系统课表数据过大&#xff0c;要求只获取最近2学年的数据&#xff0c;不能写死。 思路 mysql 在子查询的WHERE子句中…...

【图卷积神经网络】1-入门篇:为什么使用图神经网络(下)

为什么使用图神经网络? 在本书中,我们将重点介绍图学习技术中的深度学习家族,通常称为图神经网络。GNNs是一种新的深度学习架构类别,专门设计用于处理图结构化数据。与主要用于文本和图像的传统深度学习算法不同,GNNs明确地用于处理和分析图数据集(见图1.4)。 图1.4 - …...

AIGC(生成式AI)试用 2 -- 胡言乱语

小时候曾希望做个科学家&#xff0c;才师笑着说&#xff1a;努力、加油&#xff0c;一定会实现的。 也曾说要做个发明家&#xff0c;家人一笑了之&#xff1a;你那笨手笨脚的&#xff0c;想啥呢。 也曾幻想自己要成为英雄&#xff0c;被朋友嘲笑&#xff1a;连架都不敢…...

爬虫逆向实战(30)-某查查股东关联公司(HmacSHA512)

一、数据接口分析 主页地址&#xff1a;某查查 1、抓包 通过抓包可以发现数据接口是api/people/getRelatCompany 2、判断是否有加密参数 请求参数是否加密&#xff1f; 无 请求头是否加密&#xff1f; 通过查看“标头”可以发现&#xff0c;请求头中有一个key和value都是…...

如何将Android电视变身全能上网终端:TV Bro电视浏览器终极指南

如何将Android电视变身全能上网终端&#xff1a;TV Bro电视浏览器终极指南 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro 还在为智能电视上网操作困难而烦恼吗&#xf…...

别再被防火墙挡在门外!FileZilla Server在Windows下的完整端口放行指南(含被动模式配置)

FileZilla Server在Windows环境下的防火墙配置与端口管理实战 "为什么我的FTP客户端能连接却无法列出目录&#xff1f;"——这是许多初次配置FileZilla Server的用户常遇到的困惑。Windows防火墙就像一位严格的保安&#xff0c;如果不清楚FTP协议的特殊性&#xff0c…...

Gemini3.1Pro解决新媒体小编选题难痛点

做新媒体的小编&#xff0c;最怕的不是写&#xff0c;而是“今天写什么”。 选题总是来得很急&#xff0c;热点总是变化很快&#xff0c;账号又要求持续更新&#xff0c;结果就是&#xff1a;内容压力大、时间不够用、框架搭不出来。如果你每天都在追热点、找角度、写标题、搭结…...

数学全景地图6---数学的内容、方法和意义,50年代苏联的数学全景大书Big Picture。

0、数学--它的内容、方法和意义。Mathematics--Its Content, Methods, and Meaning.----俄文原版于1956年。英文翻译版于1963年。中文翻译版于1950年代。----在国内的《数学大辞典》中&#xff0c;特别指出这本书《数学-它的内容方法和意义》&#xff0c;是当时的数学辞书之一。…...

卷积运算:数字信号处理的核心原理与实践

1. 卷积在数字信号处理中的核心地位第一次接触卷积这个概念时&#xff0c;我正坐在实验室里调试一个音频滤波器。示波器上的波形始终无法达到预期效果&#xff0c;直到导师走过来画了那个著名的"翻转滑动"示意图。那一刻我突然明白&#xff0c;卷积不是抽象的数学运算…...

半导体诊断技术:从扫描逻辑到根因解卷积

1. 半导体诊断技术演进与挑战 在半导体制造领域&#xff0c;诊断技术始终扮演着至关重要的角色。想象一下&#xff0c;当芯片在测试阶段出现故障时&#xff0c;工程师们就像医生面对病患一样&#xff0c;需要通过一系列"检查手段"来定位问题根源。扫描逻辑诊断&#…...

Fulling框架:构建完整AI智能体的工程化实践指南

1. 项目概述&#xff1a;从“FullAgent”到“Fulling”的智能体进化之路最近在开源社区里&#xff0c;一个名为“Fulling”的项目引起了我的注意。它隶属于“FullAgent”这个组织&#xff0c;名字本身就很有意思。“Fulling”这个词&#xff0c;在英语里有“使…丰满、充实”的…...

Gentoo Linux 中通过 Overlay 优雅安装 Cursor 二进制编辑器

1. 项目概述与背景如果你是一名 Gentoo Linux 的用户&#xff0c;同时又对 Cursor 这款新兴的 AI 代码编辑器感兴趣&#xff0c;那么你很可能已经遇到了一个经典的 Gentoo 式难题&#xff1a;如何在这样一个以源码编译为核心的发行版上&#xff0c;方便地安装一个官方只提供.de…...

Python爬虫项目架构解析:从Requests到数据清洗的工程化实践

1. 项目概述&#xff1a;一个Python驱动的自动化数据采集与分析工具最近在GitHub上看到一个挺有意思的项目&#xff0c;叫Niceck/hhxg-top-hhxg-python。光看这个仓库名&#xff0c;可能有点摸不着头脑&#xff0c;但点进去研究一下就会发现&#xff0c;这其实是一个用Python编…...

2026年主流地图API AI功能开发与零代码工具横评

核心观点摘要 行业趋势判断&#xff1a;AI与零代码正深度融合地图API开发&#xff0c;推动位置智能从专业编码向业务自助快速演进&#xff0c;2026年主流平台将在多模态数据融合与行业化场景能力上形成分水岭。选型关键维度&#xff1a;需综合考量数据覆盖广度、模型智能水平、…...