select count()查询中的limit子句不能正常工作

时间:2015-04-16 12:48:00

标签: php mysql oop pdo

$ query = $ this-> db-> prepare(“SELECT COUNT(id)FROM table WHERE id =?&& UNIX_TIMESTAMP(timestamp)>?LIMIT 10”);                             $ query-> bindValue(1,$ id);                             $ query-> bindValue(2,$ timestamp);                             $查询 - >执行();                             $ count = $ query-> fetchColumn();                             的var_dump($计数);

var_dump($ count)显示的数字高于limit子句。是否无法将结果限制在选择计数查询中?

2 个答案:

答案 0 :(得分:1)

此查询:

SELECT COUNT(id)
FROM table
WHERE id = ? && UNIX_TIMESTAMP(timestamp) > ?
LIMIT 10

仅返回一行,因为它是一个没有group by的聚合查询。 <{1}}并未真正使用。

也许你想要这个:

limit

答案 1 :(得分:1)

这实际上是您的查询的工作方式,并且是正常行为。使用LIMIT,您不会限制countsum,只会限制返回的行。因此,您的查询将返回更多行,如LIMIT子句中所述。由于您的查询实际上只返回所有可能的行,因此应用(非零)限制对结果没有影响。

Limit只限制一次显示的记录。Count将返回所有可能的行