首页 > 解决方案 > 检查数据库是否包含两个年龄相同的人并打印出来

问题描述

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

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>';
            }
        }
    }
}

标签: phppostgresql

解决方案


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

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

db-fiddle 上的演示


推荐阅读