赞
踩
表 class 中 有学生Id以逗号相隔存储:如下
用户表:student
id | name |
---|---|
1 | 李明 |
2 | 詹尼 |
3 | 丹尼 |
班级表: class
id | name | student_id |
---|---|---|
1 | 语文班 | 1,2 |
2 | 数学班 | 1,3 |
3 | 英语班 | 1,2,3 |
现需要查询每个用户参与了几个班?
SELECT
s.NAME,
count( c.id ) AS count
FROM
student s
LEFT JOIN class c ON find_in_set( s.id, c.student_id)
GROUP BY
s.id;
现要将班级表中的学生Id拆分为多行数据。
SELECT
substring_index( substring_index( a.student_id, ',', b.help_topic_id + 1 ), ',',- 1 ) AS result
FROM
class a
JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.student_id ) - length( REPLACE ( student_id, ',', '' ) ) + 1 )
GROUP BY
result;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。