昨儿前同事抛出来一个问题

表1:user_tag

id

tag_name

1

VIP

2

VVIP,LEV1

3

SSVIP,LEV2

4

LEV3

表2:tag_label

id

tag

1

VIP

2

VVIP

3

SSVIP

需求是这样的,查询user_tag表中的tag_name中含有tag_label表中tag的行

按照图中数据就是查询出user_tag中id为1,2,3的数据来

解题思路:

1.如果tag_name只有一个tag的话可以使用函数FIND_IN_SET(str,strlist)

先查出 strlist : SELECT GROUP_CONCAT(user_tag.tag_name) FROM user_tag

然后 SELECT * FROM user_tag WHERE FIND_IN_SET(user_tag.tag_name,'VVIP,VIP,SSVIP')

这样的查询只能是查询单个tag,如果打乱顺序或者tag_name中有不存在的tag就不可以了

2.此路不通之后,就想着结合内存来做:

SELECT user_tag.*,GROUP_CONCAT(tag_label.tag) FROM user_tag,tag_label GROUP BY user_tag.tag_name;

这样查出来的结果就是

这样就可以去内存做for循环删除过滤了

3.今天晚上某位大佬想到了个方法,利用模糊查询来做,其实我当时想到了使用模糊查询,但是突然对模糊查询的概念理解模糊,就忽略过去了,具体sql就是

SELECT * FROM user_tag WHERE EXISTS (

SELECT 1 FROM tag_label WHERE CONCAT(",",user_tag.tag_name,",") LIKE CONCAT("%,",tag_label.tag,",%")

);

这样利用模糊查询 举个例子就是存在 ",SSVIP,LEV2," like "%,SSVIP,%" 这种结果

mysql模糊查询如果是_mysql模糊查询的一个问题相关推荐

  1. mysql的慢查询日志功能_MySQL 慢查询日志

    MySQL 慢查询日志 简介 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能. 查看是否开启慢查询功能: mysql> show variables ...

  2. mysql 重构同步老数据_MySQL 重构查询的方式

    主题:如何重构查询冰战士何时需要使用这种技巧 (1)一种复杂查询还是多个简单查询 设计查询的时候需要考虑的一个重要问题是是否需要将一个复杂的查询分成多个简单的查询.在平时我们总是强调需要数据库完成尽可 ...

  3. mysql获取查询策略语句_MySQL数据库查询性能优化策略

    优化查询 使用Explain语句分析查询语句 Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句. 通过对查询语句的分析,可以了解查询语句的执行 ...

  4. mysql慢查询的使用_mysql慢查询使用详解

    1 慢查询定义指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句.慢查询日志就是记录这些sql的日志. 2 开启慢查询日志 找到mysql配置文件my.cnf.在 ...

  5. 怎样知道mysql的驱动是什么_MySQL连接查询到底什么是驱动表?看了这里你应该就明白了...

    作者:阿伟~ 链接:https://www.cnblogs.com/sy270321/p/12760211.html 准备我们需要的表结构和数据 两张表 studnet(学生)表和score(成绩)表 ...

  6. mysql 联合查询后排序_MySQL的查询(联合查询,查询排序,正则表达式)

    MySQL的查询(联合查询,查询排序,正则表达式) MySQL的查询(联合查询,查询排序,正则表达式) MySQL的查询 联合查询实例 -- 联合查询 SELECT * FROM user union ...

  7. mysql数据库缓存为多久_mysql数据库查询缓存总结

    概述 查询缓存(Query Cache,简称QC),存储SELECT语句及其产生的数据结果.闲来无事,做一下这块的总结,也做个备忘! 工作原理 查询缓存工作原理如下: 缓存SELECT操作的结果集和S ...

  8. mysql子查询的语法_MySQL子查询Subquery语法介绍

    MySQL子查询Subquery语法介绍 发布时间:2020-05-19 15:48:10 来源:51CTO 阅读:187 作者:三月 下面讲讲关于MySQL子查询Subquery,文字的奥妙在于贴近 ...

  9. mysql 慢查询日志位置_mysql慢查询日志

    一.开启慢查询日志 1.查看是否开启:show variables like 'slow_query_log'; 2.查看是否开启记录未使用索引的查询:show variables like 'log ...

  10. mysql中子查询是什么_mysql子查询是什么

    MySql的子查询是多表查询的一个重要组成部分,常常和连接查询一起使用,是多表查询的基础.下面本篇文章就来带大家了解一下子查询,希望对你们有所帮助. 什么是子查询? 子查询,又叫内部查询.当一个查询是 ...

最新文章

  1. 修复 Windows XP/2003 双系统无法启动
  2. php 注册回调函数,PHP回调函数
  3. 如何利用MongoDB实现高性能,高可用的双活应用架构?
  4. 图像处理理论(六)——Harris, Eigenface
  5. 大数据集群搭建之hadoop、tomcat、jdk等工具的安装(三)
  6. 甲骨文中国裁员已定,补偿为N+6;VMware联手云平台合作伙伴AsiaPac,闪耀狮城;对标英伟达,寒武纪新货曝光……...
  7. boot spring 跨域注解_每日一问学技术:@SpringBootApplication注解干了个啥?
  8. mysql 8.0 yum_CentOS7使用yum安装MySQL8.0
  9. 2022年ps应该选择哪个版本
  10. 行测题中逻辑判断题的规律
  11. L2 Spare the spider 不要伤害蜘蛛
  12. java利用递归画杨辉三角_递归实现杨辉三角
  13. Common Lisp 超规范(译文):3. 编译和求值
  14. HTML(二)在网页中插入表格
  15. [量化学院]价值选股策略——基于机器学习算法
  16. 进制数的转换方法大全
  17. 全国各地级市、区县房价最全数据(更新至2021年7月)
  18. 恶搞 GitHub 贡献图
  19. 原生JS写《像素鸟》的小游戏(下落的小鸟)
  20. unity shader 之基础 七八 纹理采样、透明度渲染

热门文章

  1. 线程---pthread_creat的问题
  2. ScriptManager EnablePageMethods 与 JSON 序列化
  3. Drools workbench kie-server部署和简单使用(全流程
  4. kafka中zookeeper的作用
  5. mysql的data文件夹的位置以及作用
  6. 什么情况下使用多线程
  7. 沈阳自贸区促先进制造业发展 企业可获奖千万元
  8. 理解[].forEach.call()
  9. 五方面入手精选数据库审计产品
  10. ORA-00904:quot;T1quot;.quot;AREA_IDquot; :标识符无效