【发布时间】:2018-01-10 19:28:15
【问题描述】:
当我使用mysql_query 时,我已经使用了FOUND_ROWS() 函数,如下所示:
$query = 'SELECT SQL_CALC_FOUND_ROWS * FROM Users';
mysql_query($query);
$query = 'SELECT FOUND_ROWS()';
mysql_query($query);
现在我使用 PDO,这是我的查询:
$sth = $this->dbh->prepare("SELECT SQL_CALC_FOUND_ROWS *,
u.id user_id,
u.avatar,
u.date_time,
CONCAT(u.user_fname, ' ', u.user_lname) name,
sum($this->table_alias.vote_value) vote_value,
sum($this->table_alias.score) score,
$category_in_the_select AS tc $tag_in_the_select AS tt
FROM users u
JOIN reputations $this->table_alias ON u.id = $this->table_alias.owner_id $query_join
WHERE $time_limitation $query_where
GROUP BY user_id, u.avatar, u.date_time, name, tc, tt
ORDER BY score DESC, vote_value DESC
LIMIT :j, $this->per_page");
$this->parameters[":j"] = $j;
$sth->execute($this->parameters);
$users = $sth->fetchAll(PDO::FETCH_ASSOC);
如您所见,我在SELECT 语句中使用了SQL_CALC_FOUND_ROWS,我想知道如何使用FOUND_ROWS()?
【问题讨论】:
-
可能是同一个
$this->dbh->exec('SELECT FOUND_ROWS()'); -
@RiggsFolly 老实说,我仍然坚持下去。您提供的链接在我的情况下不起作用。当我将
SELECT FOUND_ROWS()与$query变量结合使用时,它会抛出Syntax error or access violation。 -
@RiggsFolly 我想在限制之前计算所有匹配行的数量。