ORDER BY $变量设置AFTER查询?

时间:2013-06-01 14:28:41

标签: php sql sql-order-by

我有这段代码:

<?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'")

,则会出错

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

1 个答案:

答案 0 :(得分: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是为这种类型的查询而设计的。