Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql中的多重分组/排序_Php_Mysql_Database - Fatal编程技术网

Php mysql中的多重分组/排序

Php mysql中的多重分组/排序,php,mysql,database,Php,Mysql,Database,我有一个包含三个字段的表:用户名、postName、post。如何先按postName分组,然后按用户名分组。例如,我的表中有4行: username1,conval1,我的第一篇帖子 username1,conval1,我的第二篇文章 username2,conval1,我的第一篇帖子 username3,Corpa2,我的第一篇帖子 如何将conval1分组(总计数为3),然后将用户名分组(由于第1行和第2行具有相同的用户名,因此计数变为2)。有没有一种方法可以通过一个查询来实现这一点?下面

我有一个包含三个字段的表:用户名、postName、post。如何先按postName分组,然后按用户名分组。例如,我的表中有4行:

  • username1,conval1,我的第一篇帖子
  • username1,conval1,我的第二篇文章
  • username2,conval1,我的第一篇帖子
  • username3,Corpa2,我的第一篇帖子

  • 如何将conval1分组(总计数为3),然后将用户名分组(由于第1行和第2行具有相同的用户名,因此计数变为2)。有没有一种方法可以通过一个查询来实现这一点?

    下面的查询应该可以做到这一点。(当然,用whateverTableName代替。)

    样本输出:

    postName uniqueUsers
    -------- -----------
    Convo1             2
    Convo2             1
    
    相同的解决方案,但作为一对视图,用于不喜欢使用复杂查询的框架:

    CREATE VIEW convo_by_user_post
    AS
    SELECT username, postName, count(*)
       FROM whateverTableName
       GROUP BY username, postName;
    
    CREATE VIEW convo_unique_users
    AS
    SELECT postName, count(*) uniqueUsers
    FROM convo_by_user_post
    GROUP BY postName;
    
    然后从您的应用程序:

    SELECT postName, uniqueUsers FROM convo_unique_users
    

    您是否尝试过
    选择。。。按postName、username分组?编辑您的问题并提供您想要获得的结果的更多详细信息。所需的输出是什么?(PrameName,用户名,计数)?你碰巧知道PHPZED框架语法吗?如果这个查询不容易在你的框架(ZEnter)中完成,考虑把这个查询保存在数据库中作为一个视图,那么你的应用程序侧代码只是从那个视图中的一个简单的选择。
    
    SELECT postName, uniqueUsers FROM convo_unique_users