检查数据库是否包含两个年龄相同的人并打印出来

问题描述

我在数据库中有很多同龄人,我想打印同龄人例如:

Table people:
Name         Age
Gessica      12
Alice        12
Max          12
Jack         34
Federica     23

现在我要打印:

Age:12 Gessica,Alice,Max
Age:34 Jack
Age:23 Federica

我使用 PHP 并尝试 pg_fetch_array 函数

$query = pg_query($conn1,$query_impiegati);
$people=array('Gessica','Alice','Max','Jack','Federica');
        
while($row = pg_fetch_array($query)) {
    $results[] = array('Name'=>$row['Name'],'Age'=>$row['Age'] );
    for($i=0;i<count($results);$i++){
        for($j=0;j<count($masioni);$i++){
            if($people[j]==results['Age'][i]){
                echo $row["Age"];
                echo $row["Name"]<br>';
            }
        }
    }
}

解决方法

您可以在查询中进行此聚合:

SELECT Age,STRING_AGG(Name,',') AS Names
FROM people
GROUP BY Age
ORDER BY Age

输出:

Age     Names
12      Gessica,Alice,Max
23      Federica
34      Jack

Demo on db-fiddle