首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql中FIND_IN_SET的使用方法

在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET...FIND_IN_SET(str,strlist)函数 str 要查询的字符串 strlist 字段名 参数以”,”分隔 如 (1,2,6,8) 查询字段(strlist)中包含(str)的结果,返回结果为...下面查询btype字段中包含”15″这个参数的值 SELECT * from test where FIND_IN_SET('15',btype) 返回值 下面查询btype字段中包含”5″这个参数的值...接下面查询btype字段中包含”20″这个参数的值 SELECT * from test where FIND_IN_SET('20',btype) 当然它的返回值为null,因为字段中没有这个值 FIND_IN_SET...和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。

25010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql中find_in_set()函数的使用

    ----------------- MySQL手册中find_in_set函数的语法: FIND_IN_SET(str,strlist) str 要查询的字符串 strlist 字段名 参数以”,...需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET函数就派上用场了,下面来看一个例子。...总结:like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。...需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET函数就派上用场了,下面来看一个例子。...总结:like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。

    3.7K40

    MySQL中explain的结果​字段介绍

    MySQL中explain的结果字段介绍(二) 昨天说完了执行计划的前四个字段,今天说说后面几个字段吧。...此时表test_explain的存储引擎是myisam,有2条记录,我们修改存储引擎为innodb,然后删除1条记录,再来看结果: mysql:yeyztest 17:41:55>>alter table...Const const值就是当我们根据主键或者唯一二级索引列与常数进行等值匹配的时候,对表的访问方法就是const,为了演示效果,我们给表中多插入了几条数据,如下: mysql:yeyztest...,这两个字段又分别使用了索引,那么这个时候就会取这两个字段的交集作为结果展示给客户端。...子查询中使用了test_explain表中的普通索引字段a_key_var和test_explain表中的主键id字段进行等值匹配,外层的where条件中我们使用的是test_explain的主键id值进行

    8.5K10

    MySQL中explain中的结果字段介绍(三)

    MySQL中explain中的结果字段介绍(三) 之前的文章中对于explain的数据结果中的字段已经进行了一部分介绍了,今天来说一说剩下的几个字段,为了防止忘记,先看看这个表结构: mysql...,与条件匹配的值是一个常数还是一个变量之类的,我们可以看到,上面的结果中,ref字段的值都是const,是因为我们使用常量a或者常量2和索引字段进行匹配,如果我们使用某个字段进行匹配,来看下面: mysql...rows rows代表的是执行计划预计扫描的索引记录行数。上面的例子中,我们可以看到,预计将会扫描的记录数为1条,但是需要注意的是,这个值是个预计值,而不能被看做真实值。...Using where 表示Mysql将对storage engine提取的结果进行过滤,过滤条件字段无索引; Using temporary 要解决查询,MySQL需要创建一个临时表来保存结果。...Using join buffer 这种情况主要发生在join的连接查询中,将外层循环的行/结果集存入join buffer, 内层循环的每一行与整个buffer中的记录做比较,从而减少内层循环的次数

    2.1K10

    ​MySQL中explain的结果字段介绍(1)

    MySQL中explain的结果字段介绍 我们在使用MySQL的时候,用的最多的情况可能就是select语句了,当我们在一个表查找数据的时候,经常会遇到查找的速度比较慢的情况,作为一名DBA,我也会经常遇见业务方写的...而判断一条SQL语句是否会变慢的最主要依据还是"执行计划"。 MySQL中,可以通过explain的语句来查看一个SQL的执行计划。...如果上面的语句中使用了union all的语法,那么就不会出现第三3行的结果,因为union all的过程中,不会对结果集进行去重,所以也就不会使用那个临时表。...的执行计划结果中id值是一样的,这说明了一个问题: 查询优化器将子查询转换成了连接查询。...,我们的结果中已经出现了primary、union、union result、simple这4个类型的值,其实select_type的值往往不止4中,它可能出现的值有以下常见情况: simple:一般的

    2.8K20

    在Google搜索结果中显示你网站的作者信息

    前几天在卢松松那里看到关于在Google搜索结果中显示作者信息的介绍,站长也亲自试了一下,目前已经成功。也和大家分享一下吧。...如果您希望您的作者信息出现在自己所创建内容的搜索结果中,那么您需要拥有 Google+ 个人资料,并使用醒目美观的头像作为个人资料照片。...然后,您可以使用以下任意一种方法将内容的作者信息与自己的个人资料关联,以便进行验证。Google 不保证一定会在 Google 网页搜索或 Google 新闻结果中显示作者信息。...要了解 Google 能够从您的网页提取哪些作者数据,可以使用结构化数据测试工具。 以上方法来自 Google搜索结果中的作者信息 站长使用的是 方法2,操作完以后,4天才显示作者信息。...关于如何访问Google+,大家自己去搜索吧。

    2.4K10

    MySQL中需要重视的隐式转换

    这是学习笔记的第 1994 篇文章 在系统集成,对接的过程中,很多时候我们都会忽略数据类型的兼容性,导致在系统运转起来的时候,原本正常的流程会容易堵塞,其中一个潜在的原因就是因为数据隐式转换带来的额外代价...,为了模拟这个问题,我们使用如下的方式创建表 test,分别指定列name为varchar和int类型,来对比查看隐式转换带来的性能问题。...primary key,name varchar(20) ,key idx_name(name)); insert into test values(1,'10'),(2,'20'); 然后我们使用如下的两条语句进行执行计划的对比测试...,从效率上来说,都是不错的。...对这种场景小结一下:对于数值类型的兼容性,需要尽可能保持一致,如果要反向转换为字符类型,是不建议的。

    1K20

    Mysql中explain用法和结果字段的含义介绍

    这是SELECT的查询序列号,表示查询中执行select子句或操作表的顺序!...Extra 该列包含MySQL解决查询的详细信息 Distinct:MySQL发现第1个匹配行后,停止为当前的行组合搜索更多的行。...Using filesort:MySQL需要额外的一次传递,以找出如何按排序顺序检索行。 Using index:从只使用索引树中的信息而不需要进一步搜索读取实际的行来检索表中的列信息。...Using temporary:为了解决查询,MySQL需要创建一个临时表来容纳结果。 Using where:WHERE 子句用于限制哪一个行匹配下一个表或发送到客户。...参考博文 mysql中explain用法和结果的含义 EXPLAIN 命令详解 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/121081.html原文链接:https

    62140

    mysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQLmysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQL

    mysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQL SELECT tagDeptUserRel.* FROM tag_dept_user_rel tagDeptUserRel inner...中FIND_IN_SET的使用方法 在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,...这时候mysql的FIND_IN_SET函数就派上用场了,下面来具体了解一下。...FIND_IN_SET(str,strlist)函数 str 要查询的字符串 strlist 字段名 参数以”,”分隔 如 (1,2,6,8) 查询字段(strlist)中包含(str)的结果,返回结果为...FIND_IN_SET和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果

    2.4K20

    MySQL中需要考虑的一些工具

    在做一些技术规划的时候,会发现有一些事情需要前置,比如说MySQL里面的工具,如果等到实际碰到了各色的问题再来统一,就比较难了。...xtrabackup,来自Percona的工具,擅长做物理备份,而且更倾向于是全备+增备结合的方式,对于版本的选择 mysqlpump ,MySQL新版本推出的备份工具,但是效果没有想象的那么好,最大的一个痛点应该就是备份的...数据库优化工具 这个工具分为两个层面:MySQL实时状态分析和满日志分析 MySQL实时状态分析: 1)innotop ? 2)orzdba ?...5.性能测试工具 sysbench tpcc-mysql 6.数据库版本管理工具 liquibase 这个工具还得斟酌一下,比预期的内容和难度要大一些。 7....MySQL审计 MySQL audit,第三方开源 官方的商业版插件 大家有好的想法,欢迎补充。

    91160

    MySQL中FIND_IN_SET探险记

    1、业务背景 公司的业务需求是需要分权限分等级的获取不同的内容,因为原来的角色,权限,分组表已经建好,但是又要实现不同产品需要不同等级不同分组的人员管理,在做数据库查询时,需要得到某字段中包含某个值的记录...,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,查找资料后发现涉及到数据库的特有函数,候mysql的FIND_IN_SET函数就派上用场了,下面来具体了解一下...其实where 类似于 if 就是对条件的判断,返回 true or false。在检索过程中,将满足条件的,即条件为true的结果返回。...FIND_IN_SET(str,strlist) 第一个参数str是要查找的字符串。 第二个参数strlist是要搜索的逗号分隔的字符串列表。...5、FIND_IN_SET和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果

    1.9K10

    MySQL 中的全文索引:强大的文本搜索利器

    在 MySQL 数据库中,全文索引是一种非常有用的功能,它可以帮助我们快速地在大量文本数据中进行搜索。那么,什么是 MySQL 中的全文索引呢?它又是如何工作的呢?让我们一起来深入了解一下。...搜索过程 当我们执行全文搜索时,MySQL 会将搜索关键词进行同样的分析处理,然后在全文索引中查找与关键词相关联的记录。...MySQL 会根据搜索关键词在记录中的出现频率、位置等因素对搜索结果进行排序,以便返回最相关的记录。...搜索语法 在使用MATCH AGAINST语句进行全文搜索时,需要注意搜索语法的正确使用。例如,可以使用布尔模式搜索来进行更复杂的搜索操作。...MySQL 中的全文索引是一种非常强大的功能,它可以帮助我们在大量文本数据中进行快速的全文搜索。

    7700

    MySQL中需要注意的字段长度问题

    在MySQL的表结构设计中,突然想起来几个地方碰到的问题比较多,大体来说一个就是字符集,一个就是数据类型。 而字符集和数据类型结合起来,就有一个蛮有意思的细节,那就是行长度的问题。...其中的计算方式就需要理解了,因为varhcar类型长度大于255,所以需要2个字节存储值的长度,而MySQL里面的页的单位是16k,使用了IOT的方式来存储。...You have to change some columns to TEXT or BLOBs 而对于utf8还是有很大的差别,对应的是3个字节,所以需要除以3,按照(65535-2)/3,最大值就是...You have to change some columns to TEXT or BLOB 两种测试结果可以简单对比一下。...------------------+ | 32744.0000 | +----------------------+ 1 row in set (0.00 sec) 整个过程还是需要考虑到这些点的

    2.2K60

    MySQL中SET类型学习--MySql语法

    例如,你可以这样从一个SET列检索数值值: mysql> SELECT set_col+0 FROM tbl_name; 如果将一个数字保存到SET列中,数字中二进制表示中的位确定了列值中的SET成员。...对于包含多个SET元素的值,当插入值时元素所列的顺序并不重要。在值中一个给定的元素列了多少次也不重要。当以后检索该值时,值中的每个元素出现一次,根据表创建时指定的顺序列出元素。...通常情况,可以使用FIND_IN_SET()函数或LIKE操作符搜索SET值: mysql> SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col...第2个类似,但有所不同:它在其它地方找出set_col包含value的行,甚至是在另一个SET成员的子字符串中。...第2个语句寻找一个确切匹配的值。应注意第2类的比较。将set值与'val1,val2'比较返回的结果与同'val2,val1'比较返回的结果不同。指定值时的顺序应与在列定义中所列的顺序相同。

    4.3K10

    MySQL find_in_set函数的深入解析与应用

    在数据库操作中,我们经常会遇到需要处理以逗号分隔的字符串,并且需要根据这些字符串进行查询的情况。MySQL提供了一个非常实用的函数FIND_IN_SET()来处理这种特定的查询需求。...FIND_IN_SET()是MySQL中的一个字符串函数,用于搜索一个字符串在另一个逗号分隔的字符串列表中的位置。如果找到匹配,它返回一个大于0的整数表示位置,否则返回0。...注意事项 在使用FIND_IN_SET()函数时,需要注意以下几点: FIND_IN_SET()对大小写敏感。 FIND_IN_SET()函数不支持模糊匹配。...因为FIND_IN_SET()函数不会利用索引,所以在大型数据集上使用时可能会导致查询速度变慢。如果经常需要执行此类查询,建议将数据设计为关系型,例如使用多对多关联表来存储用户和爱好的关系。...()是一个非常方便的函数,可以帮助我们快速地查询出在逗号分隔的字符串列表中查找特定字符串的需求。

    1.1K10
    领券