针对性的mysql 查询统计

来源:互联网 发布:沙钢网络管理学院 编辑:程序博客网 时间:2024/05/20 00:38

需求如下:

 human_m 表角色信息表:Human_m.id   human_m.name ...   task_m  表角色任务表: 关联human_m表ID    task_m.id , task_m.compleateTask          human_m 和task_m表是一对多的关系,即:一个角色对应多调任务表 数据

其中B表compleateTask 字段 格式如下:

23546,65489,87954,45658,69875,25588

要求:

查询每个角色名称,以及每个角色完成任务的个数,


SELECT 
  hh.`name`,
  SUM(LENGTH(REPLACE(tt.`completeTask`,',',',,')) - LENGTH(tt.completeTask)) num    //这里是亮点   思路:将原来的一个逗号替换为两个,那么减去原来的就是现在逗号个数。
FROM
  human_m hh 
  LEFT JOIN task_m tt 
    ON tt.`humanId` = hh.`id` 
    AND tt.`taskType` = 2 
WHERE hh.`level` > 50 
  AND hh.`robot` = 0
GROUP BY hh.`id` 
ORDER BY hh.`id` ASC 

0 0