>  기사  >  데이터 베이스  >  여러 필드별로 MySQL 결과를 그룹화하고 관련 데이터를 표시하려면 어떻게 해야 합니까?

여러 필드별로 MySQL 결과를 그룹화하고 관련 데이터를 표시하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-06 12:50:03928검색

How Can I Group MySQL Results by Multiple Fields and Display Associated Data?

필드 데이터별 MySQL 그룹 결과: 복잡한 데이터 조작을 위한 솔루션 탐색

이 기사에서는 그룹화 및 표시 문제에 대해 자세히 알아봅니다. 특정 필드 데이터를 기반으로 한 MySQL 데이터베이스의 결과입니다. 구체적으로 우리는 데이터베이스가 다음과 유사한 시나리오를 해결하는 것을 목표로 합니다.

ID    Group   Name

1       1       John
2       1       Andrea
3       1       Jack
4       2       Mike
5       2       Kurt
6       3       Alice

원래 문제: 단일 필드로 그룹화

초기 요구 사항은 다음과 같습니다. 데이터를 "그룹" 필드별로 그룹화하여 표 형식으로 표시합니다:

Group       Name
-----------------------
  1         John
            Andrea
            Jack
-----------------------
  2         Mike
            Kurt
-----------------------
  3         Alice
-----------------------

해결책:

  • MySQL 쿼리: GROUP_CONCAT 함수를 사용하면 각 고유 "그룹" 값에 대해 "이름" 필드의 고유 값을 연결할 수 있습니다.
<code class="sql">SELECT
p.Group as 'group',
GROUP_CONCAT(name) as names
FROM prueba p
GROUP BY p.Group</code>
  • PHP 구현: HTML 테이블에 결과를 표시하려면 쿼리에서 데이터를 검색하고 PHP를 사용하여 처리할 수 있습니다.
<code class="php">$result = $dbc->query("
SELECT
p.Group as 'group',
GROUP_CONCAT(name) as names
FROM prueba p
GROUP BY p.Group
");

echo "<table border='1'><tr><th>Group</th><th>Name</th></tr>";
while($row = $result->fetch_assoc()){
    $names = split(",",$row["names"]);
    echo "<tr><td rowspan='".count($names)."'>".$row["group"]."</td><td>".$names[0]."</td></tr>";
    array_shift($names);
    foreach($names as $name){
        echo "<tr><td> </td><td>".$name."</td></tr>";
    }
}
echo "</table>";</code>

고급 문제: 여러 필드로 그룹화

각 그룹과 관련된 추가 데이터와 함께 그룹화를 위해 여러 필드를 도입하면 문제가 더욱 복잡해집니다. 예를 들어 다음 데이터베이스를 고려해 보세요.

ID    meta_key  meta_value   name

1       group     1          John
2       group     1          Andrea
3       group     1          Jack
4       group     2          Mike
5       group     2          Kurt
6       group     3          Alice

위 내용은 여러 필드별로 MySQL 결과를 그룹화하고 관련 데이터를 표시하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.