find_in_set

在SQL中in可以包括指定的数字,而find_in_set()用于特定的数据类型。

find_in_set 函数使用方法

举个例子来说:
有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文...1,12,13 等等 。
现在有篇文章他既是 头条,又是热点,还是图文,
type中以 1,3,4 的格式存储。
那我们如何用sql查找所有type中有4图文标准的文章呢?

select * from article where FIND_IN_SET(‘4‘,type)

时间: 2024-10-07 05:06:18

find_in_set的相关文章

CONCAT substr group_concat find_in_set

(SELECT p.*,(SELECT CONCAT(m.name,m.id) FROM service_fastfix_category m WHERE m.id=SUBSTR(p.id,1,4)) AS parentcode,(SELECT GROUP_CONCAT(ee.name )FROM ele_part_category ee  WHERE FIND_IN_SET(ee.code,p.m_part_category_ids))AS groupname FROM service_fas

mysql中FIND_IN_SET的使用方法

根据表goods的id和site_id查处goods表id对应的网站名称. 表goods数据 表site数据 这种情况下用子查询不好处理,而mysql提供了线程的find_in_set函数再结合group by来实现此功能. SELECT g.*,GROUP_CONCAT(s.name) site_name FROM goods g LEFT JOIN site s ON FIND_IN_SET(s.id,g.site_id) GROUP BY g.id 查询结果

Mysql字符串字段中是否包含某个字符串,用 find_in_set

有这样一个需求,在Mysql数据库字符串字段(权限)中,有范围在 1 到 N 之间代表不同权限的值,分别被‘,’分开,现在要取出具有某权限的所有成员列表. 创建表: 1 CREATE TABLE users(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),name VARCHAR(20) NOT NULL,limits VARCHAR(50) NOT NULL); 添加数据: 1 INSERT INTO users(name, limits)

Mysql字符串函数FIND_IN_SET()的两点用法

概要:该可以查询用逗号分割的字段,以及对结果进行强制排序 首先看一张表: colid vyear area cast ,31,32,21,12 2014 1 15 ,32,33,34,35,21, 2014 2 16 ,33,34,36,39,40 2011 3 17 表中的colid字段的值是以逗号分割, 当我们需要查询这张表中,colid含有32的行, 那么可以用FIND_IN_SET() SQL如下: SELECT * FROM table WHERE FIND_IN_SET('32',

【MySQL】MySQL的find_in_set的使用例子

> 参考的优秀文章 FIND_IN_SET(str,strlist) > 简单的例子 这个函数的功能是,在第二个参数中寻找第一个参数,并返回第一个参数所在的位置,不存在则返回0.其中,第二个参数是以“,”分隔的字符串. -- 1select find_in_set('1', '1,2,3,4,5,6'); -- 2 select find_in_set('2', '1,2,3,4,5,6'); -- 0 select find_in_set('7', '1,2,3,4,5,6'); -- 0

mysql中的 IN和FIND_IN_SET的查询问题

原来以为mysql可以进行这样的查询select id, list, name from table where 'daodao' IN (list);      (一)注:1. table含有三个字段id:int,  list:varchar(255),  name:varchar(255) 实际上这样是不行的,这样只有当'daodao'是list中的第一个元素(我测试的时候貌似是第一个也是不行的,只有当list字段的值等于daodao时才是对的)时,查询才有效,否则都的不到结果,即使'dao

array_filter、find_in_set查询id是否在id集合中、concat连接字符串,ifnull、if用法

1:array_filter检查每个元素是不是数字 if(array_filter($this->data['log_id'] ,'is_numeric') !== $data['log_id']) echo '000'; 2:concat连接字符串,ifnull.if用法update logset users = concat(ifnull(users,''),if(users,',411','411'))where log_id between 453729 and 453740; 3:fi

Mysql查询用逗号分隔的字段-字符串函数FIND_IN_SET(),以及此函数与in()函数的区别

查询用逗号分隔的字段,可以用字符串函数FIND_IN_SET(): 查询数据库表中某个字段(值分行显示),可以用函数in(). 今天工作中遇到一个问题,就是用FIND_IN_SET()函数解决的. 第一部分: FIND_IN_SET()函数用法, 查询用逗号分隔的字段, 表A中 go_value字段的值是以逗号分割, 查询 go_value字段中含有3的行: select * from A where find_in_set('3', go_value); 第二部分: in()函数用法 查询数据

Mysql中使用find_in_set函数查找字符串

mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不是非常准确.那就试试mysql中的find_in_set函数吧. SELECT find_in_set('a','a,b,c,d') as test

sqlserver模仿mysql函数FIND_IN_SET,group_concat的功能

一.判断某个逗号隔开的字段中有某个值 FIND_IN_SET('a','a,b,c,d') 用 CHARINDEX(','+'b'+',' , ','+'a,b,c'+',') > 0 替代 二.模仿mysql的group_concat的示例 SELECT id,             val=( SELECT [value] +','                     FROM tb AS b                     WHERE b.id = a.id