0

我有这个代码:

<?php 
$data = mysql_query("SELECT id FROM board") or die(mysql_error()); 
while($info = mysql_fetch_assoc( $data )) 
{ 
    Print " ".$info['id']." ";
    myOtherQuery($info['id']);
}

function myOtherQuery($id) {
    $result = mysql_query("SELECT COUNT(is_following_board_id) FROM follow WHERE is_following_board_id='$id'");
    $c = mysql_result($result, 0);
}
?>

它列出了所有 ID,旁边有一个数字,如$c上面在第二个查询中定义的那样。

为简单起见,我删除了代码的 HTML,但它在表格中对齐。

我正在尝试ORDER BY $c,但不知道该怎么做。由于它是在选择查询之后定义的:$data = mysql_query("SELECT id FROM board")

如果我添加它会出错:$data = mysql_query("SELECT id FROM board ORDER BY '$c'")

有什么我可以添加到代码底部以通过工作来完成此订单的吗?

4

1 回答 1

1

您希望通过聚合结果在一个查询中执行此操作:

select is_following_board_id, sum(is_following_board_id) as cnt
from follow
group by is_following_board_id
order by cnt desc;

您的方法是获取结果然后获取计数。相当低效,因为 SQL 是为这种类型的查询而设计的。

于 2013-06-01T14:34:40.530 回答