Mysql中如何截取json字符串中指定片段再对其进行模糊查询--SUBSTRING_INDEX(s, delimiter, number)函数的实战运用

2023-11-11

应用场景,给你一个表单信息的字符串,如下:

//数据1
{"checkbox_1611194769273":["Option 1","Option 2"],"checkbox_1611194771312":["Option 2","Option 3"]}
//数据2
{"checkbox_1611194769273":["Option 1"],"checkbox_1611194771312":["Option 2"]}
//数据3
{"checkbox_1611194769273":[],"checkbox_1611194771312":["Option 1","Option 2"]}
//数据4
{"checkbox_1611194769273":["Option 1"],"checkbox_1611194771312":[]}

checkbox表示复选框,checkbox_xxx表示不同的复选框,现在需要筛选出,指定复选框勾选Option 1的所有数据?

解答:由于表单是动态的表单,会有很多不同的组件,复选框只是其中之一,生产的数据要比上面例子复制百倍,所有我们的思路是

1.先定位到筛选目标的复选框的数据片段

2.再截取出来其中的数据

3.最后再熊截取的数据中进行模糊查询

这里我们需要使用mysql的SUBSTRING_INDEX(s, delimiter, number)函数。

先举个简单的例子:

//这里表示从目标字符串'a*b*c*d*e'中,正着数第3个'*',截取其左边的字符串
select SUBSTRING_INDEX('a*b*c*d*e','*',3);
//结果为:
a*b*c

//这里表示从目标字符串'a*b*c*d*e'中,倒着数第1个'*',截取其右边的字符串
select SUBSTRING_INDEX('a*b*c','*',-1);
//结果为:
c

//这里表示从目标字符串'a*b*c*d*e'中,倒着数第3个'*',截取其左边的字符串,然后再从截取的字符串中,倒着数第2个'*',截取其右边的字符串
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-2);
//结果为:
b*c

简单的了解了一下用法之后,我们再回到实战问题:

//1.定位到复选框checkbox_1611194769273
select substring_index(t.DATA,'checkbox_1611194769273',-1) from FORM_DATA t

结果为: 

这里是把复选框id右边所有字符都截取出来了。

//再以第一个右中括号‘]’,向左截取字符串
select substring_index(substring_index(DATA, 'checkbox_1611194769273', - 1), ']', 1)
from FORM_DATA t;

结果为:

至此已经把复选框中的字符串搜索出来了,最后只要加上模糊查询即可:

select * from FORM_DATA where 
substring_index(substring_index(DATA, 'checkbox_1611194769273', - 1), ']', 1) 
like '%Option 1%';

结果为: 

好了,查出需要的数据啦,大功告成!

 

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql中如何截取json字符串中指定片段再对其进行模糊查询--SUBSTRING_INDEX(s, delimiter, number)函数的实战运用 的相关文章

  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • PHP多图像文件上传并存储到文件夹和数据库

    我正在建立一个网站 向夜间狂欢者展示大城市夜总会场所和活动的列表 我正在尝试构建一个后端页面 管理员可以在其中添加俱乐部并输入信息 例如机构名称 位置 相对价格等 当然还有俱乐部的一些图像 每个俱乐部必须至少有一张图像 即主图像 可以有额外
  • Innodb页面大小设置

    在innodb中 页面大小默认为16kb 如何将页面大小设置为 8kb 是否有在源编译步骤中设置的选项 您不需要在源编译步骤中指定页面大小 MySQL 5 6 及更高版本支持不同的页面大小 无需重新编译 但是 您必须在初始化 InnoDB
  • 根据最大值连接表

    这是我正在谈论的内容的一个简化示例 Table students exam results id name id student id score date 1 Jim 1 1 73 8 1 09 2 Joe 2 1 67 9 2 09 3
  • 在 Django 查询中使用 .extra(select={...}) 引入的值上使用 .aggregate() ?

    我正在尝试计算玩家每周玩游戏的次数 如下所示 player game objects extra select week WEEK games game date aggregate count Count week 但姜戈抱怨说 Fiel
  • 如何在 Laravel 5 中使用 Orchestral/Tenanti 构建具有多个数据库的多租户应用程序?

    我正在尝试使用 Laravel 5 构建和应用程序 它应该是使用多个数据库的多租户数据库架构 我的雇主出于安全目的要求这样做 我尝试手动管理主数据库迁移和租户迁移 但失败了 所以我决定借助 Laravel 特定包的帮助 这应该是我所需要的
  • MySQL SELECT OpenCarts 数据库中的重复行

    只是玩一下 OpenCart DB 看看我是否能学到一些东西 如果我使用以下SELECT结果返回重复的行 SELECT DISTINCT p product id AS pid p model AS modelo SUBSTRING p m
  • 从 CSV 到 MySQL 的换行问题

    我正在将 csv 文件导入 MySQL 除了文件中的换行符之外 一切正常 我的 csv 行之一如下所示 42 E A R Classic Earplugs ear images ear classic jpg 5 Proven size s
  • 用教义 2 DBAL 连接子查询

    我正在重构 Zend 框架2应用程序使用学说 2 5 DBAL 而不是 Zend DB ZF1 我有以下 Zend Db 查询 subSelect db gt select gt from user survey status entrie
  • MySQL通过UPDATE/DELETE合并重复数据记录

    我有一个看起来像这样的表 mysql gt SELECT FROM Colors ID USERNAME RED GREEN YELLOW BLUE ORANGE PURPLE 1 joe 1 null 1 null null null 2
  • MySQL,连接两列

    MySQL 表中有两列 SUBJECT and YEAR 我想生成一个字母数字唯一编号 其中包含主题和年份的串联数据 我怎样才能做到这一点 是否可以使用像这样的简单运算符 您可以使用CONCAT http dev mysql com doc
  • PDO获取最后插入的ID

    我有一个查询 我想获取插入的最后一个 ID 字段ID是主键并且自动递增 我知道我必须使用这个声明 LAST INSERT ID 该语句适用于如下查询 query INSERT INTO cell place ID VALUES LAST I
  • 在内连接中重用 mysql 子查询

    我正在尝试优化查询 试图避免重复用 指示的查询 复杂查询 使用两次 结果相同 原始查询 SELECT news FROM news INNER JOIN SELECT myposter FROM SELECT COMPLEX QUERY U
  • MySQL 组合两个查询

    我有两个 MySQL 查询 QUERY SELECT sodnik 1 FROM prihodnji krog WHERE file id 8778 AND sodnik 1 UNION SELECT sodnik 2 FROM priho
  • 转义用户数据,无需魔法引号

    我正在研究如何在来自外部世界的数据被用于应用程序控制 存储 逻辑等之前正确地对其进行转义 显然 随着 magic quote 指令在 php 5 3 0 中很快被弃用 并在 php6 中被删除 对于任何想要升级并进入新语言功能 同时维护遗留
  • 如何修复“未知变量'sql-mode = ANSI'”?

    使用 MySQL 5 5 27 在 my cnf 中我有 mysql sql mode ANSI 启动 mysql 控制台后我得到 unknown variable sql mode TRADITIONAL MySQL 文档服务器 SQL
  • MySQL 两种日期格式之间的转换

    用户将以这种格式输入日期 2017 年 2 月 17 日 存储在 mysql 数据库中的日期格式如下 2015 02 17 00 00 00 我想做的是 SELECT FROM insurance where DATE FORMAT in
  • 批处理文件并与数据库比较

    目前我正在开发一个 Spring Boot 应用程序 该应用程序定期尝试处理包含用户数据的文件 其中每行都包含userId and departamentId隔开 例如123534 13 该文件将包含数百万条记录 我的要求是以这样的方式将此
  • 如何关闭整个数据库的区分大小写

    我创建了一个包含许多脚本和许多存储过程的数据库 在这个数据库中 我们没有注意担心区分大小写 因为它对于我的本地开发计算机来说是关闭的 综上所述 我试图弄清楚如何使以下两条语句返回相同的结果 SELECT FROM companies SEL
  • mysql 查询选择当月的所有行?

    我有一个名为 startdate 的日期时间类型的列 我必须获取当前月份的开始日期和结束日期之间的所有行 即从 1 11 2014 到 30 11 2014 select from your table where year curdate

随机推荐

  • 移动电源/充电管理设计

    移动电源 充电管理设计 简述 伴随着智能手机的兴起 智能手机的续航成了较大的问题 因此移动电源 充电宝 成为不时之需 而近来的各类无线耳机的兴起 无线耳机的续航又成为新的问题 为此针对无线耳机充电的各大厂商又一次成为热门 而这些都需要类似于
  • Windows11如何使用安卓子系统的Amazon Appstore

    这个月更新了Windows11以后 已经可以在微软应用商店下载安卓子系统并且安装安卓应用了 但是安卓子系统默认使用的是亚马逊的Amazon Appstore 目前这个商店只限制在美国使用 如果直接打开的话会提示Amazon AppStore
  • python学习日记【13 - 面向对象三】

    面向对象三 继承简介 方法重写 super 多重继承 多态 属性和方法 继承简介 继承是面向对象三大特性之一 通过继承我们可以使一个类获取到其他类中的属性和方法 在定义类时 可以在类名后面的括号中指定当前类的父类 超类 基类 继承提高了类的
  • 拥抱你的zsh,Linux下速通zsh&oh-my-zsh配置(附常用插件&主题)

    zsh oh my zsh配置 为什么要使用zsh 功能强大插件 丰富酷炫的主题 对bash完全兼容 这意味着与bash语法一致 功能更 健全 的Tab补全 代码高亮 相信你在阅读完本文以及用上zsh一段时间过后之后 可能并不需要很久 能对
  • 移动端适配方案之postcss-px-to-viewport

    之前做移动端适配时 基本上是采用rem方案 现在发现了一个新的方案 就是用viewport单位 现在viewport单位越来越受到众多浏览器的支持 postcss px to viewport 将px单位自动转换成viewport单位 用起
  • linux 消息队列状态:struct msqid_ds

    Linux的消息队列 queue 实质上是一个链表 它有消息队列标识符 queue ID msgget创建一个新队列或打开一个存在的队列 msgsnd向队列末端添加一条新消息 msgrcv从队列中取消息 取消息是不一定遵循先进先出的 也可以
  • 斐波那契数列应用——有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    以下一道常见的关于斐波那契数列的算法题 发现python的解法比较少 特此分享一下 首先从题目分析 得出以下结论 1 最初一对兔子是一公和一母 2 兔子三个月就能生育 3 后续生下来的兔子很标准的一夫一妻制 但是有近亲繁殖的问题 细思极恐
  • 最好用的五个黑科技搜索引擎推荐

    一 数据搜 http data chongbuluo com 数据搜 这个网站就是搜索一些热词和数据指数的 包括百度指数 阿里指数 微博指数 微信指数 搜狗指数等等 当然 还有一些汽车数据 腾讯大数据 票房数据相关数据查询网站 估计很多人经
  • 多输入多输出

    多输入多输出 MATLAB实现CNN LSTM卷积长短期记忆神经网络多输入多输出 目录 多输入多输出 MATLAB实现CNN LSTM卷积长短期记忆神经网络多输入多输出 预测效果 基本介绍 程序设计 往期精彩 参考资料 预测效果 基本介绍
  • H.264 入门篇 - 10 (帧间预测 - 参考帧列表修改/重排)

    目录 0 写在前面 1 参考帧列表修改 重排 1 1 短期参考帧的修改 1 1 1 计算 picNumLXPred 1 1 2 计算 picNumLXNoWrap 1 1 3 计算 picNumLX 1 1 4 修改参考帧列表 1 2 长期
  • redis与memcache区别

    一 redis与memcache总体对比 1 性能 Redis 只使用单核 平均每一个核上Redis在存储小数据时比Memcached性能更高 Memcached 可以使用多核 而在100k以上的数据中 Memcached性能要高于Redi
  • 开源程序识别图像像素点_开源浏览器扩展程序,可放大图像

    开源程序识别图像像素点 您是否曾经浏览过网站并希望看到更大的图像 这无时无刻不在我身上发生 要做到这一点并不总是那么容易 有时 我在源代码中进行筛选 使用Ctrl F搜索图像 复制图像源地址并将其粘贴到新窗口中 以便以全尺寸查看图像 或者
  • 深度优先遍历(DFS)和广度优先遍历(BFS)

    深度优先遍历和广度优先遍历 1 深度优先遍历 DFS 2 广度优先遍历 BFS 3 DFS与BFS算法比较 深度优先遍历简称DFS Depth First Search 广度优先遍历简称BFS Breadth First Search 它们
  • 【Linux】Linux安装搜狗输入法

    Linux安装搜狗输入法 1 安装Fcitx sudo apt install fcitx bin sudo apt get install fcitx table 2下载搜狗输入法 下载地址为 http pinyin sogou com
  • MySQL主从复制配置

    主从同步原理 准备两台机器 master 192 168 44 121 slave 192 168 44 128 如果用clone的方式得到两个MySQL服务 需要注意的地方 不同机器的UUID不能重复 否则IO线程不能启动 find na
  • Charles--01--安装和使用

    文章目录 前言 安装和破解 安装 破解 使用 连接 1 电脑端连接 2 手机端连接 问题 如何捕获本地 localhost 数据 产生原因 解决方法 前言 Charles是一款代理服务器 通过过将自己设置成系统 电脑或者浏览器 的网络访问代
  • 面向对象的语言

    面向对象的语言 面向过程和面向对象的设计思想 面向过程 procedure oriented programming 缩写POP 分析出解决问题所需的步骤 然后把步骤一部哟不实现 面向对象语言 Object Oriented Languag
  • IT项目管理大作业技术报告

    大作业项目中承担的角色 第一次团队作业项目前期研究 第一个是 中大人IT生活攻略 描述目前应用情况 另一个是 中大人的移动生活攻略 描述Program实现后的美好生活 第二次团队作业调查与研究 云或移动项目管理服务软件 竞品分析 调查Wor
  • 通过PIL打开图片并显示

    输入 from PIL import Image import matplotlib pyplot as plt pil im Image open 1 jpg pil im Image open 1 jpg convert L 灰度操作
  • Mysql中如何截取json字符串中指定片段再对其进行模糊查询--SUBSTRING_INDEX(s, delimiter, number)函数的实战运用

    应用场景 给你一个表单信息的字符串 如下 数据1 checkbox 1611194769273 Option 1 Option 2 checkbox 1611194771312 Option 2 Option 3 数据2 checkbox