mysql/php,按用户ID分组,按时间排序
我有一个表,其中包含userID、highscore和时间戳 我想按时间戳排序,这样最新的条目位于顶部,并且,在列表中不显示任何用户ID两次,因此,它们需要分组 我还需要按分数排序mysql/php,按用户ID分组,按时间排序,mysql,Mysql,我有一个表,其中包含userID、highscore和时间戳 我想按时间戳排序,这样最新的条目位于顶部,并且,在列表中不显示任何用户ID两次,因此,它们需要分组 我还需要按分数排序 $sql="SELECT * FROM $table GROUP BY userID ORDER BY time DESC"; $sql2=按用户ID顺序按分数描述从$table GROUP中选择* 此时,我看到GROUPBY是首先完成的,所以我可能只是得到一些随机的时间戳/戳记。我需要先订购,然后分组。但是,如
$sql="SELECT * FROM $table GROUP BY userID ORDER BY time DESC";
$sql2=按用户ID顺序按分数描述从$table GROUP中选择*
此时,我看到GROUPBY是首先完成的,所以我可能只是得到一些随机的时间戳/戳记。我需要先订购,然后分组。但是,如果切换Group by和Order by,则会出现错误
有人能帮我吗?谢谢。在订购之前总是先分组。要在分组前对记录进行排序,有两种方法:
子查询中的排序依据,然后应用分组依据。这通常不是一种更好的方法,因为运行子查询非常昂贵,特别是当您有许多记录时。对于少量的记录,这将是好的
$sql=SELECT*FROM SELECT*FROM$table ORDER BY time DESC GROUP BY userID
更好的解决方案是在子查询中获取MAXtime,然后在userID和max time上将其连接到表中
选择p1。*
从$table t1开始
内连接
选择maxtime maxtime,用户ID
从$table开始
按用户ID分组
t2
在t1.userID=t2.userID上
t1.time=t2.MaxTime
按t1.time DESC排序
我是从头开始写的
HTH可能重复的