计算变量并在MySQL中限制它?

时间:2014-11-24 07:15:45

标签: php mysql

我有下表,其中'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

但我不需要那个。我只需要一个数字,在这种情况下,myvariable的数量必须是6。

计算最后15个数字可以得到:

  

(1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0)= 6

仅限最后15行,而不是整个表的结果。

5 个答案:

答案 0 :(得分:1)

您可以使用子查询将要处理的行数限制为15,然后对该子查询的结果执行计数: -

SELECT COUNT(*)
FROM
(
    SELECT * 
    FROM mytable 
    WHERE myvariable='1' 
    ORDER BY id desc 
    LIMIT 15
) sub0

我不确定您是否要在将行限制为15之前或之后基于 myvariable 排除行,因此您可能希望将WHERE子句移到子查询之外。

答案 1 :(得分:0)

$result=mysql_query("SELECT SUM(myvariable) as total from mytable where myvariable='1' order by id desc LIMIT 15");

使用MySQL的sum()功能。

作为@ tyteen4a03,评论建议,请不要在代码中使用mysql_*个函数。

答案 2 :(得分:0)

首先 -

select count(*) as total from mytable;//to get the total
$total = //store the result

然后 -

"SELECT COUNT(*) as total from mytable where myvariable='1' LIMIT ".($total-15).", 15"

您将获得最后15个结果

答案 3 :(得分:0)

你可以尝试最后15个条目

"SELECT  COUNT(*) as total from mytable where myvariable='1' order by id desc LIMIT 15"

order by id desc将按降序排列您的记录

并且limit 15会将其限制为仅限15个条目

因此,您将获得最近15个条目的结果

答案 4 :(得分:0)

您可以运行以下查询:

$result=mysql_query("SELECT id from mytable where myvariable='1' order by id desc LIMIT 15");
$data=mysql_fetch_array($result);
$count = count($data);