一、group_concat()
作用:
将group的每组数据的某个字段通过具体分隔符连接(默认是用过","连接)
基本用法:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
举例:
select id,name,group_concat(girlfriend) as girlfriend from vivavium group by name;
按name分组,将girlfriend通过“,”拼接.
select id,name,group_concat(distinct girlfriend) as girlfriend from vivavium group by name;
按name分组,将girlfriend去重并通过“,”拼接.
select id,name,group_concat(girlfriend order girlfriend by DESC) as girlfriend from vivavium group by name;
按name分组,将girlfriend降序排序并通过“,”拼接.
select id,name,group_concat(girlfriend separator ';') as girlfriend from vivavium group
by name;
按name分组,将girlfriend通过“;”拼接.
二、sum(if( ))
作用:
将if判断和sum()方法结合,做出逻辑判断的结果
基本用法:
sum(if(score=xxx,1,0))
举例:
select name,sum(if(score>80,1,0)) from vivavium group by name;
if(score>80,1,0)如果score大于80则取值1,否则取值0,该sql的含义则为,按名字分数查找该名称分数大于80的个数
三、left()
作用:
返回具有指定长度的字符串的左边部分
基本用法:
LEFT(str,length)
str为字符串。lenght为整型,从左取的个数
举例:
select left(name,3) as name from vivavium;
查找所有name,返回name的左边3个字符
四、mid()
作用:
返回从指定位置开始的子字符串
基本用法:
MID(str,pos,len)
str是字符串,pos是起始子字符串的位置,len是一个可选参数,它决定从起始位置返回的字符数
举例:
select mid(name,2) as name from vivavium;
返回姓名中第二个字符之后的内容。
如:select mid('oh sexy lady',3) as name from vivavium;
结果为:"sexy lady"