GROUP BY与字符串后缀

时间:2013-09-19 09:52:31

标签: php mysql group-by

我的情况是,我需要根据类似的名称对GROUP记录进行处理,但名称末尾有_QA

这是完整的例子。

我有一个名为project的表,其中包含name varchar(200)

进入该表的示例如下,

id = 1
name = Project

id = 2
name= Project_QA

你可以看到我的名字只有_QA同名的参赛作品。

现在,我想查询该表格,将ProjectProject_QA分组为一个相同的记录。

我试过的。?对不起极客们我什么都没找到,所以我在这里问。

我不想存储过程。

修改

现在我根据收到的答案进行了工作查询,现在是最后一个问题。

现在我有一张名为working的表跟踪工作时间,我如何加入此表并获得总工时总和。

我有以下查询。

SELECT
    SUM(
        ROUND(
            TIME_TO_SEC(
                TIMEDIFF(
                    vv.end_date,
                    vv.start_date
                )
            ) / 3600
        ,2)) AS TotalHour,
    ( select name from project where id=vv.project_id )  AS ProjectName,
    ( select planned_hour from project where id=vv.project_id )  AS ProjectPlannedHour
FROM
    working vv
WHERE
    vv.project_id in(select id from project)
GROUP BY
    vv.project_id,
    IF(SUBSTR(ProjectName, -3)='_QA', LEFT(ProjectName, CHAR_LENGTH(ProjectName)-3), ProjectName)
ORDER BY
    TotalHour DESC
LIMIT 0, 100

1 个答案:

答案 0 :(得分:4)

使用string函数非常简单:

SELECT 
  * 
FROM 
  project 
GROUP BY 
  IF(SUBSTR(name, -3)='_QA', LEFT(name, CHAR_LENGTH(name)-3), name);

-fiddle demo