【发布时间】:2017-05-07 19:23:57
【问题描述】:
我试图弄清楚如何使用 PHP 确定特定数字范围内的总行数。
我有一个带有单列的简单 MySQL 表。该列包含数千行,每行包含一个介于 0 和 100 之间的数字。
我知道如何使用 array_count_values 找到特定数字的行数,但我不知道如何找到某个范围的行数。
例如,60 到 80 之间有多少个数字?
这是我为查找单个值而整理的代码。我应该添加什么代码来查找范围值?
$query = "SELECT numbers FROM table";
$result = mysqli_query($conn, $query) or die("Error in $query");
$types = array();
while(($row = mysqli_fetch_assoc($result))) {
$types[] = $row['numbers'];
}
$counts = array_count_values($types);
echo $counts['12'];
【问题讨论】:
-
为什么不只计算执行查询的返回数?即:SELECT *** WHERE 介于 60/80 之间?
-
因为我想要 0 到 20、20 到 40、40 到 60、60 到 80 和 80 到 100 的值。所以,据我所知,我必须进行 5 次查询,而不是1.
-
你可以使用
UNION -
嗨,Dan,你能告诉我更多关于 UNION 的信息吗?
-
UNION和UNION ALL允许您将多个SELECT语句链接在一起,只要返回的行数相同。所以你可以为每个范围添加一个语句;例如:SELECT COUNT(numbers) AS c, '0-20' AS r FROM table WHERE numbers BETWEEN 0 AND 20 UNION ALL SELECT COUNT(numbers) AS c, '21-40' AS r FROM table WHERE numbers BETWEEN 21 AND 40等。