Mysql字符串字段判断是否包含某个字符串的方法

Mysql字符串字段判断是否包含某个字符串的方法方法一 likeSELECT FROM 表名 WHERE 字段名 like 字符 方法二 find in set 利用 mysql 字符串函数 find in set SELECT FROMusersWHE in set 字符 字段名 这样是可以的 怎么理解呢 mysql 有很多字符串函数 find in set str1 s

方法一:like

SELECT * FROM 表名 WHERE 字段名 like "%字符%";

方法二:find_in_set()

利用mysql 字符串函数 find_in_set();

SELECT * FROM users WHERE find_in_set('字符', 字段名);

这样是可以的,怎么理解呢?

mysql有很多字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以”,”分割开

 

 注:当str2为NO1:“3,6,13,24,33,36”,NO2:“13,33,36,39”时,判断两个数据中str2字段是否包含‘3’,该函数可完美解决 mysql > SELECT find_in_set('3','3,6,13,24,33,36') as test; -> 1 mysql > SELECT find_in_set('3','13,33,36,39') as test; -> 0 

注意: 数据量较大时此函数性能消耗比较大

方法三:locate(字符,字段名)

使用locate(字符,字段名)函数,如果包含,返回>0的数,否则返回0 ,

它的别名是 position in

select * from 表名 where locate(字符,字段) select * from 表名 where position(字符 in 字段); 例子:判断site表中的url是否包含'http://'子串,如果不包含则拼接在url字符串开头 update site set url =concat('http://',url) where locate('http://',url)=0  注意mysql中字符串的拼接不能使用加号+,用concat函数

 方法四:INSTR(字段,字符)

select * from 表名 where INSTR(字段,字符) 

另外,笔者查看了以上SQL的执行计划(不包含find_in_set),发现都是:

Mysql字符串字段判断是否包含某个字符串的方法

网上说模糊查询 用 locate 速度快,不知道结论怎么来的,可能是大数据量的情况下吧。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221463.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午6:02
下一篇 2026年3月17日 下午6:03


相关推荐

  • RKE部署Kubernetes集群

    RKE部署Kubernetes集群

    2021年6月1日
    125
  • Idea 删除当前一行的快捷键

    Idea 删除当前一行的快捷键使用eclipse,有时候出现多个空行时,习惯使用快捷键:Ctrl+D,删除当前一行。最近使用idea开发,发现手动删除空行,很麻烦,特意查了一下,发现是快捷键:Ctrl+Y。如下图所示:使用Ctrl+Y后删除当前行另外:可以使用设置,讲idea的快捷键设置为eclipse模式…

    2025年9月28日
    6
  • 腾讯云视频直播sdk开发攻略

    腾讯云视频直播sdk开发攻略视频直播这一两年在移动互联网上可以说是非常的火,各种视频直播软件层出不穷。有的通过自己的推广宣传确实火了起来,比如:映客。我之前也是在一家专门做视频直播的公司打酱油,当时对这个概念还是很模糊,后来才慢慢的了解清楚视频直播的这个概念。后来离开这家公司,到现在的公司,做了一段时间,又有需要做视频直播的需求。由于公司各方面原因,只能引用第三方的sdk,最后选择的腾讯云。所以我下面给大家讲一下开发过程

    2022年6月9日
    53
  • 如何在idea中打包程序_有趣的打包问题

    如何在idea中打包程序_有趣的打包问题当自己定义的配置文件在Maven工程的“main”文件夹外时,打包后运行会发现配置文件没有起作用,是因为在IDEA中打包时仅打包“main”文件夹下“java”和“resource”文件夹中的文件…

    2022年10月3日
    4
  • PreferenceActivity详解

    PreferenceActivity详解出处 http gundumw100 iteye com blog 为了引入这个概率首先从需求说起即 现有某 Activity 专门用于手机属性设置那么应该如何做呢 nbsp 根据已学知识很快一个念头闪过即 Activity Preference 组合前者用于界面构建后者用于设置数据存放 nbsp 其实这是正确的但是这会比较繁琐因为每个设置选项都要建立与其对应

    2026年3月26日
    2
  • C#之AutoEventWireup

    C#之AutoEventWireup原文链接http://blog.sina.com.cn/s/blog_5d2ef8320100fcar.html如果Page指令的AutoEventWireup属性被设置为true(或者如果缺少此属性,因为它默认为true),该页框架将自动调用页事件,即Page_Init和Page_Load方法。在这种情况下,不需要任何显式的Handles子句或委托…

    2022年5月28日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号