目前我的代码是这样的:
<?php
$qall = $db->query("SELECT * FROM location_code
WHERE
StateCode='".$secureStateCode."'");
while($fall = $db->fetch($qall)) {
?>
<tr>
<th><?php echo $fall['StateCode']; ?></th>
<td><?php echo $fall['StateName']; ?></td>
<td>
<?php
$query = $db->query("SELECT COUNT(*) AS `male_count`
FROM `all_users`
WHERE `Sex`='M'
AND
`StateCode`='{$fall['StateCode']}'");
$data = $db->fetch($query);
echo $data['male_count'];
?>
</td>
<td>
<?php
$query = $db->query("SELECT COUNT(*) AS `female_count`
FROM `all_users`
WHERE `Sex`='F'
AND
`StateCode`='{$fall['StateCode']}'");
$data = $db->fetch($query);
echo $data['female_count'];
?>
</td>
<td>Total male_count + female_count</td>
</tr>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)
如何组合这些查询并使其加载速度更快,以满足男性和女性的需求.目前我有大约50万用户.
$db->query("
SELECT
`Sex`,
COUNT(*) AS count,
FROM
`all_users`
WHERE
`StateCode` = '{$fall['StateCode']}'
GROUP BY
`Sex` WITH ROLLUP
");
Run Code Online (Sandbox Code Playgroud)
应该返回三行,如下所示:
----------------
+ Sex + count +
----------------
+ F + 12345 +
+ M + 54321 +
+ null + 66666 +
----------------
Run Code Online (Sandbox Code Playgroud)
你应该能够从那里得到其余的=)