2

我有一种情况,我需要根据相似的名称对记录进行分组,但_QA名称末尾有。

这是完整的例子。

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

该表的条目示例如下,

id = 1
name = Project

id = 2
name= Project_QA

如您所见,我有同名的条目,只有_QA区别。

现在我想查询该表以将两者分组Project并将Project_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
4

1 回答 1

4

使用字符串函数很容易:

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

-小提琴演示

于 2013-09-19T10:02:35.783 回答