首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分组SQL查询

分组SQL查询
EN

Stack Overflow用户
提问于 2012-03-24 03:23:20
回答 2查看 61关注 0票数 0

我在一个电影档案管理系统上工作,我需要将查询结果分组到具有多个结果的案例中

例如,当用户搜索一个导演的名字(例如Steven)时,有Steven A,Steven B和Steven C的电影,(多个)我想做的是在他的名字下显示Steven A的所有电影,在他的名字下显示Steven B的所有电影,等等。

我如何使用php和mysql实现这一点?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-03-24 03:25:55

使用ORDER BY director_name。这将导致具有相同名称的行一起列出。

您还可以使用PHP中的一些代码来检测控制器名称何时发生更改,如果您希望使从一个控制器到下一个控制器的更改更加明显,则添加一个标头。

代码语言:javascript
复制
while (/* read row */)
{
    $director_name = ...; // Implement this.

    if ($previous_director_name !== $director_name) {
        echo ...; // Output director's name.
        $previous_director_name = $director_name;
    }

    echo ...; // Output row.
}
票数 0
EN

Stack Overflow用户

发布于 2012-03-24 03:41:47

因为可能会有同名的人(有些人实际上改名了),所以根据董事的名字进行检查是有点愚蠢的。此外,我还假设您希望将信息存储在某种数据结构中,而不是仅在应用程序中的随机位置回显:

代码语言:javascript
复制
$director_movies = array();

while ( /* can get new row */ )
{
    $id = $row['director_id'];
    if ( ! array_key_exists( $id, $director_movies ) )
    {
        $director_movies[ $id ] = array();
    }
    $director_movies[$id][] = $row['movie_title'];
}

// now $director_movies is a 2D array, containing movies for each director

这当然是一个非常简单的例子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9845311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档