首先,我对MySQL很陌生。
我有一个名为bike_main的表,在这个表中有两列;一个用于日期,一个用于north_bool。我试图计算真正的布尔值与假布尔值的百分比。例如,如果north_bool中的10行中有4行设置为1,那么结果将为40%。我试过了;
$northRidersQuery = 'SELECT count(north_bool) as number_of_rows FROM bike_main ORDER BY id DESC LIMIT 1';
$northRidersResult=mysql_query($northRidersQuery);
$northRidersDisplay = mysql_fetch_assoc($monthlyRidersResult);
并用
输出<h3><?php echo $northRidersDisplay ?></h3>
这不会输出任何内容。
答案 0 :(得分:0)
试试这个:
while ($northRidersDisplay = mysql_fetch_assoc($monthlyRidersResult)) {
echo $row["number_of_rows"]; // echo column name
}
答案 1 :(得分:0)
COUNT(north_bool)
计算north_bool不是NULL
的行数。如果它不为空,则不关心它是0
还是1
。如果您只想计算1
个值,请使用SUM(north_bool)
。
$northRidersQuery = 'SELECT SUM(north_bool)*100/COUNT(*) AS north_pct
FROM bike_main';
$northRidersResult = mysql_query($northRidersQuery);
$northRidersRow = mysql_fetch_assoc($northRidersResult);
echo "<h3>{$northRidersRow['north_pct']}%</h3>";
最后,您需要使用$northRidersRow['north_pct']
来访问结果中的列。
答案 2 :(得分:0)
你可以试试
$qry = "select (x.true_tot/x.tot)*100 as perc
from ( select sum(north_bool=1) as true_tot, count(*) as tot from test ) x " ;
$result = mysql_query($qry);
$result_set = mysql_fetch_assoc($result);
echo '<h3>'.$result_set["perc"].'</h3>';