mysql 字段包含字符串的方法

mysql 字段包含字符串的方法方法一:likeSELECT*FROM表名WHERE字段名like”%字符%”;方法二:find_in_set()利用mysql字符串函数find_in_set();SELECT*FROMusersWHEREfind_in_set(‘字符’,字段名);这样是可以的,怎么理解呢?mysql有很多字符串函数find_in_set(str1,s…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

方法一:like

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

Jetbrains全家桶1年46,售后保障稳定

方法二: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/230918.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月15日 下午2:43
下一篇 2025年6月15日 下午3:15


相关推荐

  • 给女朋友讲 : Java线程池的内部原理

    给女朋友讲 : Java线程池的内部原理餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”

    2022年5月12日
    57
  • 粘包问题怎么解决_包带粘手怎么处理

    粘包问题怎么解决_包带粘手怎么处理如何解决粘包问题粘包就是连续向对端发送两个或者两个以上的数据包,对端在一次收取中受到的数据包数量可能大于1个,当大于1个时,可能时几个包加上某个包的部分,这这干脆几个完整的包在一起。当然,也可能收到的数据只是一个包的部分,这种情况一般也叫做半包。无论是半包问题还是粘包问题,因为TCP是流式数据,所以其解决思路还是从收到的数据中把包与包的边界区分出来。如何区分,有以下三种办法。固定包长的数据包。固定包长,即每个协议包的长度都是固定的。假如我们规定每个协议包的大小都是64字节,每收满64字节,就取出来

    2022年8月11日
    11
  • 如何设置网址跳转_怎么让域名跳转到另一个域名

    如何设置网址跳转_怎么让域名跳转到另一个域名一、什么是URL转发?URL(UniformResourceLocator:统一资源定位器)是WWW页的地址,它从左到右由下述部分组成:Internet资源类型(scheme):指出WWW客户程序用来操作的工具。如“http://”表示WWW服务器,“ftp://”表示FTP服务器,“gopher://”表示Gopher服务器,而“new:”表示Newgroup新闻组。服务器地址…

    2022年10月10日
    4
  • 安全测试常用的几个工具有_工具软件有哪些

    安全测试常用的几个工具有_工具软件有哪些下面介绍了这些工具的主要功能以及教程、书籍、视频等。端口扫描器:NmapNmap(NetworkMapper)是一款著名的、用来扫描端口和绘制网络的免费开源基于控制台的黑客工具。Nmap被用于发

    2022年8月1日
    8
  • 局域网,园区网,广域网的区别是什么_局域网和互联网的区别与联系

    局域网,园区网,广域网的区别是什么_局域网和互联网的区别与联系局域网局域网LAN(LocalAreaNetwork):一般不大于10公里,而且通常只使用一种传输介质;地域上看局域网通常是用在一座建筑物或一个工厂内,使用上通常是某一单位或某一部门使用,规模上一般不超过几百个用户。(局域网也是相对而言,一栋楼可以看作一个局域网,一个国家性对于世界来说也可以看作一个局域网。多个楼栋,组成的局域网就可以看作一个园区网。)城域网MAN(MetropolitanAreaNetwork):城域网是一种比局域网更大的网,通常覆盖一个城市,从几十公里到100公里不等,可能

    2022年8月31日
    4

发表回复

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

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