【发布时间】:2014-11-24 07:15:44
【问题描述】:
我有下表,其中“myvariable”的一些结果是 1,而有些不是。我在 PHP 中使用此代码:
$result=mysql_query("
SELECT COUNT(*) AS `total` FROM `mytable`
WHERE `myvariable`='1'
ORDER BY `id` DESC
LIMIT 15;"
);
$data=mysql_fetch_array($result);
$count = $data['total'];
echo $count;
如您所见,我需要计算 (1+1+1+1) 并在 mytable 中获得此“myvariable”的最终结果,但仅适用于最后 15 行,而不适用于整个表。
该怎么做?
更新,我可以得到这个结果:
myvariable:
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
但我不需要那个。我只需要一个数字,在这种情况下我的变量的数字必须是 6。
计算最后 15 个数字可以得到:
(1+0+1+1+1+0+0+0+0+1+0+0+0+1+0)=6
仅用于最后 15 行,而不是整个表的结果。
【问题讨论】:
-
没有
group by的聚合函数将只返回一行,您可能需要在列上使用group by子句。 -
你可以去掉LIMIT 15来获取所有数据
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial. -
我知道,但我不需要所有数据,只需要最后 15 行。
-
我觉得你应该提供一个样本数据集和想要的结果集。