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

mysql sql语句 需要使用like 场景,解决方案

mysql 多重like 解决方案
方案一、使用like
方案二、使用REGEXP 正则匹配
方案三、使用group_concat多重模糊匹配
方案一、使用like
查询user包含小李并且小王的相关数据
SELECT * FROM user WHERE name LIKE '%小王%' or name like '%小王%

方案二、使用REGEXP 正则匹配
查询user包含小李并且小王的相关数据
SELECT * FROM user WHERE name REGEXP '小王|小王'

方案三、使用group_concat多重模糊匹配
如果需要匹配的数据条件很多又不想一个个打,可用下列方式
1.将需要的数据模糊匹配的数据作为条件
select name from contract where age>18;

2.利用group_concat将条件数据进行合并,字符串化并且转换成REGEXP正则格式,就可以实现
select * from user wherenameregexp (select CONCAT("'",GROUP_CONCAT(nameorder bynameSEPARATOR '|'),"'") asnamefrom user wherenamein (selectnamefrom user where age>18));

思路,使用group_concat函数把需要模糊条件的数据进行合并为一个数据,将合并数据后分隔符默认值 “,” ,改成REGEXP 格式的 “|”、再利用CONCAT连接字符串函数将结果前后添加单引号CONCAT("‘",GROUP_CONCAT(name order by name SEPARATOR ‘|’),"’"),最后把子查询字符串后返回的结果作为REGEXP 条件即可

上列sql 性能可能不太好,本文章注重实现,如果你有更好的建议,可以留言改进
 

http://www.lryc.cn/news/111912.html

相关文章:

  • 通过C语言设计的贪吃蛇游戏(控制台终端)
  • c++实现Qt信号和槽机制
  • 【Linux】五、进程
  • 使用 OpenCV 和 Python 卡通化图像-附源码
  • GitLab不同角色对应的权限
  • 手写一个简易的布隆过滤器
  • 阿里云快速部署开发环境 (Apache + Mysql8.0)
  • 侧边栏的打开与收起
  • 贝叶斯学习
  • Java并发系列之六:CountDownLatch
  • 24数据结构-图的基本概念与存储结构
  • 自然语言处理学习笔记(三)————HanLP安装与使用
  • CS 144 Lab Five -- the network interface
  • Mecha
  • Apache RocketMQ之集成RocketMQ_MQTT 安装部署协议
  • Oracle多行数据合并为一行数据,并将列数据转为字段名
  • MySQL5.7 与 MariaDB10.1 审计插件兼容性验证
  • PyTorch Lightning教程五:Debug调试
  • 末流211无科研保研经验分享
  • 日期选择器多选换行
  • NodeJS原型链污染ctfshow_nodejs
  • 18. SpringBoot 如何在 POM 中引入本地 JAR 包
  • vue2-$nextTick有什么作用?
  • python自动收集粘贴板
  • Vue3_语法糖—— <script setup>以及unplugin-auto-import自动引入插件
  • 2023-08-06力扣做过了的题
  • 进程间通信之管道
  • f12 CSS网页调试_css样式被划了黑线怎么办
  • vue-制作自动滚动效果
  • [国产MCU]-BL602-开发实例-DMA数据传输