【问题标题】:Order results by number按编号排序结果
【发布时间】:2012-02-10 02:04:00
【问题描述】:

这是我的代码

$getlast = mysql_query("SELECT * FROM `offersdone` group by uid");
$content .= "<table><tr><th>Username</th><th>Total Offers</th></tr>";
while($last = mysql_fetch_array($getlast)){
    $getuser = mysql_query("SELECT * FROM `users` WHERE ID='".$last['uid']."'");
    if (($user = mysql_fetch_array($getuser)){
        $getlast1 = mysql_query("SELECT * FROM `offersdone` WHERE uid='".$user['ID']."'  ");
        $num1 = mysql_num_rows($getlast1);
        $content .= "<tr><td>" . $user['username'] . " </td><td> " . $num1 . "</td></tr>";
    }
}

结果是这样的:

Username    Total Offers
martin   15
dragan   1
mile1986 1
naramix  7
rrrob    55
sha09hh  17
shakest  1

【问题讨论】:

  • 我在任何地方都看不到问号。试着解释一下你到底在寻找什么。

标签: php mysql sql-order-by


【解决方案1】:
$sql = "SELECT 
            u.username, 
            count(*) as count 
        FROM 
            offersdone o 
        LEFT JOIN 
            users u 
            ON u.ID = o.uid 
        GROUP BY
            o.uid 
        ORDER BY 
            count(*) DESC";
$getlast = mysql_query($sql);
$content .= "<table><tr><th>Username</th><th>Total Offers</th></tr>";
while($last = mysql_fetch_array($getlast)){
        $content .= "<tr><td>" . $last['username'] . " </td><td> " . $last['count'] . "</td></tr>";
}

这应该通过一个查询同时选择用户名和报价数量,并且已经按报价数量排序。

演示:

mysql> SELECT * FROM offersdone;
+-----+
| uid |
+-----+
|   1 |
|   1 |
|   2 |
|   2 |
|   2 |
|   2 |
+-----+
6 rows in set (0.00 sec)

mysql> SELECT * FROM users;
+----+----------+
| ID | username |
+----+----------+
|  1 | A        |
|  2 | B        |
+----+----------+
2 rows in set (0.00 sec)

mysql> SELECT u.username, COUNT( * ) as count 
    -> FROM offersdone o
    -> LEFT JOIN users u ON u.ID = o.uid
    -> GROUP BY o.uid
    -> ORDER BY COUNT( * ) DESC;
+----------+-------+
| username | count |
+----------+-------+
| B        |     4 |
| A        |     2 |
+----------+-------+
2 rows in set (0.00 sec)

【讨论】:

    【解决方案2】:

    将“ORDER BY Total Offers ASC”添加到您的查询中;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 2015-11-06
      相关资源
      最近更新 更多