我想询问是否有更快的方法来进行此查询?实际上完成需要大约100秒.我在表中有大约10 000 000(1 GB)行.这是统计信息生成脚本.
这是查询:
$results=MysqL_query("SELECT * FROM hawkeye WHERE player_id='".$playerID."'") or die("MysqL ERROR: ".MysqL_error());
$row = MysqL_fetch_array($results)
if($row["action"] == 4){$commandcount++;}
else if($row["action"] == 3){$chatcount++;}
else if($row["action"] == 1){$placedcount++;}
else if($row["action"] == 0){$breakcount++;}
else if($row["action"] == 5){$joincount++;}
else if($row["action"] == 6){$quitcount++;}
else if($row["action"] == 7){$qteleportcount++;}
else if($row["action"] == 12){$pvpdeathcount++;}
else if($row["action"] == 21){$mobkillcount++;}
else if($row["action"] == 22){$otherdeathcount++;}
else {}
谢谢你的回答!
解决方法:
SELECT COUNT(*) AS action_count
, action
FROM hawkeye
WHERE player_id='".$playerID."'"
GROUP BY action
while ($row = MysqL_fetch_assoc($result))
{
echo $row['action'] . ': ' . $row['action_count'] . "<br>" . PHP_EOL;
}