手机
当前位置:查字典教程网 >编程开发 >php教程 >Mysql的GROUP_CONCAT()函数使用方法
Mysql的GROUP_CONCAT()函数使用方法
摘要:语法:GROUP_CONCAT([DISTINCT]expr[,expr...][ORDERBY{unsigned_integer|col_...

语法:

GROUP_CONCAT([DISTINCT]expr[,expr...][ORDERBY{unsigned_integer|col_name|expr}[ASC|DESC][,col_name...]][SEPARATORstr_val])

下面演示一下这个函数,先建立一个学生选课表student_courses,并填充一些测试数据。

SQL代码

复制代码 代码如下:

CREATETABLEstudent_courses(

student_idINTUNSIGNEDNOTNULL,

courses_idINTUNSIGNEDNOTNULL,

KEY(student_id)

);

INSERTINTOstudent_coursesVALUES(1,1),(1,2),(2,3),(2,4),(2,5);

若要查找学生ID为2所选的课程,则使用下面这条SQL:

SQL代码

复制代码 代码如下:

mysql>SELECTstudent_id,courses_idFROMstudent_coursesWHEREstudent_id=2;

+------------+------------+

|student_id|courses_id|

+------------+------------+

|2|3|

|2|4|

|2|5|

+------------+------------+

3rowsINSET(0.00sec)

输出结果有3条记录,说明学生ID为2的学生选了3、4、5这3门课程。

放在PHP里,必须用一个循环才能取到这3条记录,如下所示:

PHP代码

复制代码 代码如下:

foreach($pdo->query("SELECTstudent_id,courses_idFROMstudent_coursesWHEREstudent_id=2")as$row){

$result[]=$row['courses_id'];

}

而如果采用GROUP_CONCAT()函数和GROUPBY语句就显得非常简单了,如下所示:

SQL代码

复制代码 代码如下:

mysql>SELECTstudent_id,GROUP_CONCAT(courses_id)AScoursesFROMstudent_coursesWHEREstudent_id=2GROUPBYstudent_id;

+------------+---------+

|student_id|courses|

+------------+---------+

|2|3,4,5|

+------------+---------+

1rowINSET(0.00sec)

这样php里处理就简单了:

PHP代码

复制代码 代码如下:

$row=$pdo->query("SELECTstudent_id,GROUP_CONCAT(courses_id)AScoursesFROMstudent_coursesWHEREstudent_id=2GROUPBYstudent_id");

$result=explode(',',$row['courses']);

分隔符还可以自定义,默认是以“,”作为分隔符,若要改为“|||”,则使用SEPARATOR来指定,例如:

SQL代码

复制代码 代码如下:

SELECTstudent_id,GROUP_CONCAT(courses_idSEPARATOR'|||')AScoursesFROMstudent_coursesWHEREstudent_id=2GROUPBYstudent_id;

除此之外,还可以对这个组的值来进行排序再连接成字符串,例如按courses_id降序来排:

SQL代码

复制代码 代码如下:

SELECTstudent_id,GROUP_CONCAT(courses_idORDERBYcourses_idDESC)AScoursesFROMstudent_coursesWHEREstudent_id=2GROUPBYstudent_id;

【Mysql的GROUP_CONCAT()函数使用方法】相关文章:

Mac环境下php操作mysql数据库的方法分享

使用无限生命期Session的方法

php动态函数调用方法

Access数据库导入Mysql的方法之一

PHP递归调用数组值并用其执行指定函数的方法

PHP+shell实现多线程的方法

php恢复数组的key为数字序列的方法

php函数重载的替代方法

PHP date函数常用时间处理方法

Session的工作方式

精品推荐
分类导航