您的位置:首页 > 数据库 > 数据库管理

mysql中FIND_IN_SET函数

更多 2016/3/19 来源:数据库管理学习浏览量:407
学习标签: mysql
本文导读:在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,mysql的FIND_IN_SET函数能够方便的实现这样的功能。下面为大家介绍mysql中FIND_IN_SET函数的具体用法

一、语法

FIND_IN_SET(str,strlist)

查询字段(strlist)中包含(str)的结果,返回结果为null或记录

 

参数说明

str: 要查询的字符串

strlist :字段名 参数以”,”分隔 如 (1,2,6,8)

 

 

二、FIND_IN_SET函数实例

 

1、查出所有拥有1这个权限的所有用户的信息

用户表(user)中的一个字段(purview)代表该用户的权限,将用户的所有权限id存入此字段。比如有:1,2,3,4,5这样的五个权限。

 

select * from user where find_in_set('1',purview); 

 

2、test表中有如下字段及值

 

(1)、查询area中包含”1″这个参数的记录

SELECT * from test where FIND_IN_SET('1',area)

结果

 

(2)、查询btype字段中包含”15″这个参数的值

SELECT * from test where FIND_IN_SET('15',btype)

结果

 

(3)、查询btype字段中包含”5″这个参数的值

 SELECT * from test where FIND_IN_SET('5',btype)

结果

返回值为null,因为btype中没有”5”这个值,它不同于 like 模糊查询,它是以“,”来分隔值

 

 

三、FIND_IN_SET和like的区别

1、like是广泛的模糊匹配,字符串中没有分隔符

2、Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。

 

收藏
93
很赞
49