MySQL查询JSON字符串

MySQL版本:8.0.27

表结构及数据

/*
 Navicat Premium Data Transfer

 Source Server         : Local
 Source Server Type    : MySQL
 Source Server Version : 80027 (8.0.27)
 Source Host           : 127.0.0.1:3306
 Source Schema         : mumangguo

 Target Server Type    : MySQL
 Target Server Version : 80027 (8.0.27)
 File Encoding         : 65001

 Date: 26/04/2024 22:31:08
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for json
-- ----------------------------
DROP TABLE IF EXISTS `json`;
CREATE TABLE `json`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `ip_info` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'ip地址信息',
  `user_info` json NULL COMMENT '用户信息',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of json
-- ----------------------------
INSERT INTO `json` VALUES (1, '{\"ipConfig\":20,\"ip\":\"10.1.40.0\",\"exchangePort\":\"11\",\"pmPort\":\"12\"}', '{\"id\": 1, \"age\": \"20\", \"name\": \"木芒果\", \"birthday\": \"2003-12-05\"}');
INSERT INTO `json` VALUES (2, '{\"ipConfig\":20,\"ip\":\"10.1.40.1\",\"exchangePort\":\"11\",\"pmPort\":\"12\"}', '{\"id\": 2, \"age\": \"21\", \"name\": \"张三\", \"birthday\": \"2004-11-01\"}');
INSERT INTO `json` VALUES (3, '{\"ipConfig\":20,\"ip\":\"10.1.40.3\",\"exchangePort\":\"11\",\"pmPort\":\"12\"}', '{\"id\": 3, \"age\": \"22\", \"name\": \"李四\", \"birthday\": \"2006-9-06\"}');
INSERT INTO `json` VALUES (4, '[{\"ipConfig\":20,\"ip\":\"10.1.40.4\",\"exchangePort\":\"111\",\"pmPort\":\"112\"},{\"ipConfig\":20,\"ip\":\"10.1.40.5\",\"exchangePort\":\"111\",\"pmPort\":\"112\"}]', '{\"id\": 4, \"age\": \"24\", \"name\": \"王五\", \"birthday\": \"2023-3-03\"}');
INSERT INTO `json` VALUES (5, '[{\"exchangePort\":\"[T1-01][10.20.8.204][GE1/0/06]\",\"ip\":\"10.10.20.41\",\"ipConfig\":28,\"pmPort\":\"1\"}]', '{\"id\": 5, \"age\": \"22\", \"name\": \"赵六\", \"birthday\": \"2003-5-03\"}');
INSERT INTO `json` VALUES (6, '{\"exchangePort\":\"[T1-02][10.20.8.208][GE1/0/02]\",\"pmPort\":\"HDM\"}', '[{\"id\": 6, \"age\": \"44\", \"name\": \"陈启\", \"birthday\": \"1998-2-01\"}, {\"id\": 7, \"age\": \"34\", \"name\": \"周八\", \"birthday\": \"1988-1-21\"}]');
INSERT INTO `json` VALUES (7, NULL, NULL);
INSERT INTO `json` VALUES (8, '{}', '{}');
INSERT INTO `json` VALUES (9, '[]', '[]');
INSERT INTO `json` VALUES (10, '\"\"', '\"\"');

SET FOREIGN_KEY_CHECKS = 1;

一般基础查询操作

#一般基础查询操作,只针对存储单个json的情况
SELECT * from `json` WHERE `ip_info`->'$.ip'='10.1.40.0';
#{"ipConfig":20,"ip":"10.1.40.0","exchangePort":"11","pmPort":"12"}

JSON_EXTRACT函数

#JSON_EXTRACT函数:从json中返回想要的字段
#查询数据类型为varchar的单个json数组
SELECT *   
FROM `json`   
WHERE JSON_EXTRACT(`ip_info`, '$.ip') = "10.1.40.1";
#{"ipConfig":20,"ip":"10.1.40.0","exchangePort":"11","pmPort":"12"}

#查询数据类型为json的单个json数组
SELECT *
FROM `json`
WHERE JSON_EXTRACT(`user_info`, '$.name') LIKE '%木%';
#{"id": 1, "age": "20", "name": "木芒果", "birthday": "2003-12-05"}

JSON_CONTAINS函数

#JSON_CONTAINS函数:JSON格式数据是否在字段中包含特定对象
#查询数据类型为varchar的多个json数组和json
SELECT *   
FROM `json`   
WHERE JSON_CONTAINS(`ip_info`, '{"ip":"10.1.40.1"}', '$');
#[{"ipConfig":20,"ip":"10.1.40.4","exchangePort":"111","pmPort":"112"},{"ipConfig":20,"ip":"10.1.40.5","exchangePort":"111","pmPort":"112"}]

#查询数据类型为json的多个json数组和json
SELECT *
FROM `json`
WHERE JSON_CONTAINS(`user_info`, '{"name":"陈启"}', '$');
#[{"id": 6, "age": "44", "name": "陈启", "birthday": "1998-2-01"}, {"id": 7, "age": "34", "name": "周八", "birthday": "1988-1-21"}]

REGEXP表达式

#使用正则表达式查询json
SELECT *   
FROM `json`   
WHERE `ip_info` REGEXP '"ip":"10.1.40.1"';
--
SELECT *   
FROM `json`   
WHERE `user_info` REGEXP '"name": "陈启"';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/576743.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

又重新搭了个个人博客

哈喽大家好,我是咸鱼。 前段时间看到一个学弟写了篇用 Hexo 搭建博客的教程,心中沉寂已久的激情重新被点燃起来。(以前搞过一个个人网站,但是因为种种原因最后不了了之) 于是花了一天时间参考教程搭了个博客网站&…

广工电工与电子技术实验报告-8路彩灯循环控制电路

实验代码 module LED_water (clk,led); input clk; output [7:0] led; reg [7:0] led; integer p; reg clk_1Hz; reg [7:0] current_state, next_state; always (posedge clk) begin if(p25000000-1)begin …

JVM(Jvm如何管理空间?对象如何存储、管理?)

Jvm如何管理空间(Java运行时数据区域与分配空间的方式) ⭐运行时数据区域 程序计数器 程序计数器(PC),是一块较小的内存空。它可以看作是当前线程所执行的字节码的行号指示器。Java虚拟机的多线程是通过时间片轮转调…

Flutter 从 Assets 中读取 JSON 文件:指南 [2024]

在本教程中,我们将探讨如何从 Flutter 项目中的 asset 中读取 JSON 文件。您将找到详细的解释、实际示例和最佳实践,使您的 JSON 文件处理顺利高效。那么,让我们深入了解 Flutter 和 JSON 的世界吧! 从 asset 中读取 JSON 文件 …

RTK负载(4K可见光+高分热成像+超广角+激光测距)四光AI智能识别跟踪吊舱技术详解

无人机光电吊舱的RTK负载(4K可见光高分热成像超广角激光测距)AI智能识别跟踪吊舱技术是一种高度集成和先进的无人机观测系统。系统结合了无人机的飞行能力和光电吊舱的多功能传感器,通过集成RTK(实时动态差分定位)技术…

WebGL开发框架比较

WebGL开发框架提供了一套丰富的工具和API,使得在Web浏览器中创建和操作3D图形变得更加容易。以下是一些流行的WebGL开发框架及其各自的优缺点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.Three.js 优点&#xff1a…

WoodMart主题下载:为您的电商网站带来自然而优雅的购物体验

在电子商务的激烈竞争中,一个设计精良、用户友好的在线商店是吸引和保留客户的关键。WoodMart主题,作为一款专为Shopify平台设计的高级主题,以其自然美学和强大的功能,帮助您的商店在众多竞争对手中脱颖而出。 [WoodMart主题的核…

运行游戏提示dll文件丢失,分享多种有效的解决方法

在我们日常频繁地利用电脑进行娱乐活动,特别是畅玩各类精彩纷呈的电子游戏时,常常会遭遇一个令人困扰的问题。当我们满怀期待地双击图标启动心仪的游戏程序,准备全身心投入虚拟世界时,屏幕上却赫然弹出一条醒目的错误提示信息&…

【书生浦语第二期实战营学习作业笔记(二)】

书生浦语第二期实战营学习作业&笔记(二) 操作文档:https://github.com/InternLM/Tutorial/blob/camp2/helloworld/hello_world.md 基础作业 : 使用 InternLM2-Chat-1.8B 模型生成 300 字的小故事: 八戒部署(笔记&#xff0…

基于灰狼算法的综合能源系统多时间尺度优化调度(附matlab程序)

0.代码链接 基于灰狼算法的综合能源系统多时间尺度优化调度(MATLAB程序)资源-CSDN文库 1.简述 对于冷、热、电联供综合能源系统优化问题,为了提高可再生能源利用率,故以弃风、弃光量最小和综合能源系统运行经济性为优化目标&…

mac配置maven

在 macOS 上配置 Maven 也相对简单。以下是一种常用的方法: 1. 安装maven **下载 Maven:**首先,你需要从 Maven 官网(https://maven.apache.org/download.cgi)下载最新版本的 Maven。你可以选择二进制压缩包&#xf…

redis常用数据结构

redis常用数据结构 Redis 底层在实现下面数据结构的时候,会进行特定的优化,来达到节省时间/空间的效果。 内部结构 String raw(最基本的字符串),int(实现计数功能,当value为整数的时候会用整…

JPEG图像常用加密算法简介

JPEG图像加密算法 目前,JPEG图像加密算法可以分成异或加密、置乱加密和置乱与异或组合加密。下面对这三种加密方式进行阐述。 (1) 异或加密 文献[1]提出了一种基于异或加密的JPEG图像的RDH-EI方案。该算法通过对AC系数的ACA和图像的量化表进行流密码异或&#xf…

Feign功能详解、使用步骤、代码案例

简介:Feign是Netflix开发的声明式,模板化的HTTP客户端,简化了HTTP的远程服务的开发。Feign是在RestTemplate和Ribbon的基础上进一步封装,使用RestTemplate实现Http调用,使用Ribbon实现负载均衡。我们可以看成 Feign R…

经典的免费wordpress模板

这款经典的免费WordPress模板以鲜艳的红色为主调,充满了活力与热情。设计简洁而现代,适合各种类型的项目网站。模板采用响应式设计,确保在不同设备和屏幕尺寸上都能呈现出完美的视觉效果。 红色象征着激情、活力和自信,这款模板…

ubuntu子系统密码忘记了,怎么办?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

18种WEB常见漏洞:揭秘网络安全的薄弱点

输入验证漏洞: 认证和会话管理漏洞: 安全配置错误: 其他漏洞: 防范措施: Web 应用程序是现代互联网的核心,但它们也容易受到各种安全漏洞的影响。了解常见的 Web 漏洞类型,对于开发人员、安全测试人员和普通用户都至关重要。以下将介绍 18 种常见的 …

HttpClient工具类编写

HttpClient 介绍 HttpClient是Apache Jakarta Common下的一个子项目,它提供了一个高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包。它支持HTTP协议最新的版本和建议,并实现了Http1.0和Http1.1协议。 HttpClient具有可扩展的面向对象的结构…

电脑壁纸怎么设置?简单3步,让你的电脑桌面变得更合心意

电脑壁纸是我们每天在电脑上工作和娱乐时不可或缺的一部分。一张精美的电脑壁纸,既能提升我们的工作效率,也能为我们带来愉悦的心情。无论是静谧的自然风光、抽象的艺术设计,还是心动的明星照片,都可以在电脑壁纸的世界里找到自己…

HF区块链链码基础

链码生命周期 一 . 链码准备 准备文件 . 在测试目录下创建chaincode,拷贝测试链码进 chaincode目录,拷贝 set-env.sh 脚本进 scripts 目录 二. 打包链码 打包测试链码 export FABRIC_CFG_PATH${PWD}/config peer lifecycle chaincode package ./chaincode/chaincode_basic.…
最新文章