Mysql中的group_concat跟find_in_set函数的详解
一.Mysql中的group_concat函数:
1.解释:
当SQL语句中使用到....group by....的时候, 该函数能够将相同的行组合起来,或者将满足条件的数据结合起来,返回由指定分隔符链接的字符号串数据.
2.用法:
group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符'] )
默认按照“,”来连接。
3.举例说明:
(1)将满足条件的数据用“;”连接显示,去掉重复的数据倒序排列:
SELECT GROUP_CONCAT(distinct keyword_id order by keyword_id desc separator ';') keywordInfo FROM wechat_keyword WHERE keyword_up_code = '-1'
(2)分组查询将相同的行组合起来:
select id,group_concat(distinct price order by price desc) info from goods group by id;
二.find_in_set函数:
1.解释:
返回所给值在给定字符号串中的位置或者信息。
2.用法:
FIND_IN_SET(str,strlis
3. 举例说明:
(1)假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。
如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。从1开始!
SELECT FIND_IN_SET('b','a,b,c,d');------返回2
(2)注意:
select * from child_info where FIND_IN_SET(id,'1,2,3,4,5');
使用find_in_set函数一次返回多条记录
id 是一个表的字段 然后每条记录分别是id等于1,2,3,4,5的时候
有点类似in (集合)
select * from child_info where id in (1,2,3,4,5);