Mysql 的 GROUP_CONCAT() 函数拼接串

SELECT GROUP_CONCAT( ut.id_card ORDER BY ut.id_card DESC SEPARATOR ',' )   FROM `edu_user_train` ut where ut.id in(614,615);

输出结果:
500231199108181861,371324198450304515
使用场景:返回的是纯数字 配合in 查询
例:
SELECT u.name FROM `edu_user` u WHERE u.id_card IN (500231199108181861,371324198450304515);
SELECT GROUP_CONCAT('"',ut.id_card,'"') FROM `edu_user_train` ut where ut.id in(614,615);

输出结果:

"500231199108133881","371325198706304515"

使用场景:返回的是字符串(因为身份证中存在有"X"的情况) 配合in 查询
例:
SELECT u.name FROM `edu_user` u WHERE u.id_card IN ("500231199108133881","371325198706304515");
SELECT CONCAT('"',ut.id_card,'"') FROM `edu_user_train` ut where ut.id in(614,615);

输出结果:

"500231199133133881"
"371325198706454515"

这种情况相对来说就用的比较少了。

这部分以上面的区别在于加了GROUP 后 , 再得到一个结果后会进行换行。

SELECT GROUP_CONCAT( u. NAME ORDER BY u. NAME DESC SEPARATOR "," ) AS userName FROM `edu_user` u WHERE u.id_card IN ( SELECT ut.id_card  FROM `edu_user_train` ut where ut.id in(614,615,939));

多个数据, 进行子查询。

欢迎补充指正,这是本人在实践中所得的记录,详细用法及专业解释请看Mysql 的API。

你可能感兴趣的:(mysql)