我有这段代码:
<?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'")
我可以添加到代码底部以通过工作来完成此订单吗?
答案 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是为这种类型的查询而设计的。