mysql中包含查询的五种方法总结

 更新时间:2023年08月07日 10:15:07   作者:夏目不听话  
这篇文章主要给大家介绍了关于mysql中包含查询的五种方法, 在MySQL中,包含语句是一种用来包含其他查询语句的语句,通常用在WHERE语句中,需要的朋友可以参考下

场景:数据库表字段存的是一个字符串,用“,”分隔,查询的sql需要匹配其中某一段字符串

测试的表数据如下图:

在这里插入图片描述

方法1:使用LIKE

LIKE关键字用于模糊匹配,可以在查询中使用通配符进行匹配。%表示匹配任意多个字符,_表示匹配一个字符。

SELECT * FROM test t WHERE t.is_deleted = 0 AND ((t.key LIKE "%TEST_KEY_1%") OR (t.key LIKE "%TEST_KEY_2%"))

方法2:使用INSTR

INSTR函数用于查找子字符串在父字符串中的位置,如果找到则返回对应的位置,如果没找到则返回0。其中substr参数表示要查找的子字符串,str参数表示父字符串。

SELECT * FROM test t WHERE t.is_deleted = 0 AND (INSTR(t.key,"TEST_KEY_1") OR INSTR(t.key,"TEST_KEY_2"))

方法3:使用LOCATE

LOCATE函数和INSTR函数类似,用于查找子字符串在父字符串中的位置,但可以指定从父字符串的哪个位置开始查找。如果找到则返回对应的位置,如果没找到则返回0。其中substr参数表示要查找的子字符串,str参数表示父字符串,pos参数表示从哪个位置开始查找。

SELECT * FROM test t WHERE t.is_deleted = 0 AND (LOCATE("TEST_KEY_1",t.key) OR LOCATE("TEST_KEY_2",t.key))

方法4:使用POSITION

POSITION函数和INSTR函数类似,用于查找子字符串在父字符串中的位置,如果找到则返回对应的位置,如果没找到则返回0。其中substr参数表示要查找的子字符串,str参数表示父字符串。

SELECT * FROM test t WHERE t.is_deleted = 0 AND (POSITION("TEST_KEY_1" IN t.key) OR POSITION("TEST_KEY_2" IN t.key))

这四种方法返回的结果是一样的,如下图:

在这里插入图片描述

如果想要精准匹配的话,上面四种就不适用了,可以使用方法5

方法5:使用FIND_IN_SET

FIND_IN_SET函数用于在一个逗号分隔的字符串集合中查找一个子字符串是否存在。如果存在,则返回对应的位置,如果不存在,则返回0。其中str参数表示要查找的子字符串,set参数表示用逗号分隔的字符串集合。

SELECT * FROM test t WHERE t.is_deleted = 0 AND (FIND_IN_SET("TEST_KEY_1",t.key) OR FIND_IN_SET("TEST_KEY_2",t.key))

在这里插入图片描述

总结

到此这篇关于mysql中包含查询的五种方法的文章就介绍到这了,更多相关mysql包含查询方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用mysqld_multi实现单系统中配置多个MySQL服务器实例

    使用mysqld_multi实现单系统中配置多个MySQL服务器实例

    这篇文章主要介绍了使用mysqld_multi实现单系统中配置多个MySQL服务器实例,mysqld_multi可用于在一台物理服务器运行多个Mysql服务,mysqld_multi是管理多个mysqld的服务进程,这些服务进程程序不同的unix socket或是监听于不同的端口,需要的朋友可以参考下
    2014-09-09
  • MySql explain命令返回结果详细介绍

    MySql explain命令返回结果详细介绍

    explain 是MySql提供的SQL语句查询性能的工具,是我们优化SQL的重要指标手段,要看懂explain返回的结果集就尤为重要,这篇文章主要介绍了MySql explain命令返回结果解读,需要的朋友可以参考下
    2023-09-09
  • MySQL 选择合适的存储引擎

    MySQL 选择合适的存储引擎

    这篇文章主要介绍了MySQL如何选择合适的存储引擎,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09
  • 在MySQL执行UPDATE语句时遇到的错误1175的解决方案

    在MySQL执行UPDATE语句时遇到的错误1175的解决方案

    MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引列,或者使用LIMIT限制行数,若SQL语句未满足这些条件,会触发错误1175,本文介绍在MySQL执行UPDATE语句时遇到的错误1175的解决方案,感兴趣的朋友一起看看吧
    2025-02-02
  • mysql 5.5.x zip直接解压版安装方法

    mysql 5.5.x zip直接解压版安装方法

    这篇文章主要介绍了mysql 5.5.x zip直接解压版安装方法 ,需要的朋友可以参考下
    2016-04-04
  • MySQL中的窗口函数使用及说明

    MySQL中的窗口函数使用及说明

    这篇文章主要介绍了MySQL中的窗口函数使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • mysql主从服务器同步心得体会

    mysql主从服务器同步心得体会

    原来看过MYSQL同步数据的实现,可是自己还没有动过手,今天没什么事就玩一玩,正好在旁边有另一台空电脑,都在同一个路由器下。哈哈,正好。
    2008-06-06
  • Mysql主键和唯一键的区别点总结

    Mysql主键和唯一键的区别点总结

    在本篇文章中小编给大家分享了关于Mysql主键和唯一键的区别,有兴趣的朋友们学习下吧。
    2019-02-02
  • 一文详解MYSQL的多版本并发控制MVCC(Multi-Version Concurrency Control)

    一文详解MYSQL的多版本并发控制MVCC(Multi-Version Concurrency Co

    MVCC是一种用于数据库管理系统的并发控制技术,允许多个事务同时访问数据库,而不会导致读写冲突,本文就详细的介绍了MVCC的具体用法,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • mysql索引失效的十大问题小结

    mysql索引失效的十大问题小结

    最近生产爆出一条慢sql,原因是用了or和!=,导致索引失效。于是,总结了索引失效的十大杂症,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论