MySQL 逗号分隔查询--find_in_set()函数

业务场景:

在使用MySQL的时候,可能的某个字段存储的是一个英文逗号分割的字符串(这里我们不讨论表设计的合理性),如图所示:
在这里插入图片描述
我们在查询的时候需要匹配逗号分割中的某个字符串,该怎么查询呢?

find_in_set函数:

函数结构:find_in_set(str,strlist)

  • str:要查询的字符串。
  • strlist: 字段名,示例中的 business_line_reviewer 字段。

为了方便理解,我们可以认为strlist是由多个str且以英文逗号分割组成的,函数返回的是str在strlist中的位置,返回值的范围在 1 到 N 之间,需要注意的是strlist不能以英文逗号开头。

find_in_set函数用法演示:

select id,business_line_reviewer from org_performance_approver where  find_in_set('zt19379', business_line_reviewer) > 0

查询结果:
在这里插入图片描述
完美解决了在查询的时候需要匹配逗号分割中的某个字符串的场景。

索引使用情况:

explain select business_line_reviewer from org_performance_approver where  find_in_set('zt19379', business_line_reviewer) > 0;

在这里插入图片描述
MySQL版本

select version();

在这里插入图片描述

总结:
在查阅资料寻求解决方案的时候,看到部分资料说 find_in_set 函数不支持英文逗号分割 ,我使用的 8.0.27 版本是支持的,可能是老版本不支持,这个待求证,也有资料 find_in_set 函数说不支持索引,同样我在使用的时候看了执行计划,也是支持索引的,可能也是老版本不支持。

如有不正确的地方请各位指出纠正。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

压缩式 交换式 碎片整理 :(使碎片减少或没有)

交换式碎片整理 首先流程 是 p3这个程序在运行,p1p2p4 的话在等待 ,然后p3这时要多用3个内存块,这是 p4 通过拷贝,将内存拷贝到磁盘上,对应的数据也是从主存中cp到磁盘此时主存多出3个内存块给p3继续使用 2.压缩式碎片…

手撕LRU缓存——LinkedHashMap简易源码

题目链接:https://leetcode.cn/problems/lru-cache/description/?envTypestudy-plan-v2&envIdtop-100-liked 原理非常简单,一个双端链表配上一个hash表。 首先我们要知道什么是LRU就是最小使用淘汰。怎么淘汰,链表尾部就是最不常用的直接…

vue3批量创建svg icon组件

1、通过插件动态导入svg文件 安装vite插件vite-plugin-svg-icons npm i vite-plugin-svg-icons -D 配置插件svg-icon.ts import { createSvgIconsPlugin } from "vite-plugin-svg-icons"; import path from "path";export default function createSvgI…

好物周刊#42:国产项目管理软件

https://github.com/cunyu1943 村雨遥的好物周刊,记录每周看到的有价值的信息,主要针对计算机领域,每周五发布。 一、项目 1. 菠萝博客 基于 Java 的菠萝博客系统,简单易部署,精致主题,贴心服务&#xf…

模型优化_XGBOOST学习曲线及改进,泛化误差

代码 from xgboost import XGBRegressor as XGBR from sklearn.ensemble import RandomForestRegressor as RFR from sklearn.linear_model import LinearRegression as LR from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split,c…

ChatGPT提示词工程师AI大神吴恩达2023年视频课程学习实践

前言 刚才看了一个视频系列教程,很短,但收获很大,毕竟是一手知识来源,吴恩达大神亲自讲解,他说的话,我都信。这里写个笔记,顺便把知识点实践一下。视频可以去B站上搜索 吴恩达 prompt &#xf…

上门服务系统|上门服务小程序节省时间的必选利器

在如今的快节奏时代,我们的时间越来越宝贵。为了省时省力,越来越多的人选择使用上门服务类小程序。那么,为什么这些小程序能够如此受人欢迎呢?让我们一起揭示其中的原因。 一、方便快捷 上门服务类小程序最大的特点就是方便快捷。…

【探索AI】探索未来-计算机专业必看的几部电影

计算机专业必看的几部电影 计算机专业必看的几部电影,就像一场精彩的编程盛宴!《黑客帝国》让你穿越虚拟世界,感受高科技的魅力;《社交网络》揭示了互联网巨头的创业之路,《源代码》带你穿越时间解救世界,…

Zabbix企业运维监控工具

Zabbix企业级监控方案 常见监控软件介绍 Cacti Cacti是一套基于 PHP、MySQL、SNMP 及 RRD Tool 开发的监测图形分析工具,Cacti 是使用轮询的方式由主服务器向设备发送数据请求来获取设备上状态数据信息的,如果设备不断增多,这个轮询的过程就非常的耗时&#xff0…

【驱动】TI AM437x(USB-01):USB Functionfs使用

1、内核、设备树配置USB Functionfs 1.1、配置内核 1)清理 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean2)生成配置文件.config make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am437x-evm_defconfig3)查看、修改配置项 make ARCH=arm CROSS…

Unity UI适配规则和对热门游戏适配策略的拆解

前言 本文会介绍一些关于UI适配的基础概念,并且统计了市面上常见的设备的分辨率的情况。同时通过拆解目前市面上较为成功的两款休闲游戏Royal Match和Monopoly GO(两款均为近期游戏付费榜前几的游戏),大致推断出他们的适配策略,以供学习和参…

WebServer -- 日志系统(下)

目录 🌼整体思路 🎂基础API fputs 可变参数宏 __VA_ARGS__ fflush 🚩流程图与日志类定义 流程图 日志类定义 🌼功能实现 生成日志文件 && 判断写入方式 日志分级与分文件 🌼整体思路 日志系统分两部…