我找到了一些类似的,但不是我需要的那个:
背景资料: 我正在使用MySQL与PDO类
目前,我正在使用以下两个查询:
获取一页数据:
$sql = "SELECT * FROM `tab`
WHERE `condition` = :condition
LIMIT $page_size OFFSET $offset";
$array = array('condition'=>$condition);
$mysql = $pdo->prepare($sql);
$mysql->execute($array);
获取总行数:
$sql = "SELECT COUNT(*) FROM `tab`
WHERE `condition` = :condition";
$array = array('condition'=>$condition);
$mysql = $pdo->prepare($sql);
$mysql->execute($array);
答案 0 :(得分:2)
您可以使用SQL_CALC_FOUND_ROWS
命令告诉MySQL返回匹配记录的总数
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM `tab`
WHERE `condition` = :condition
LIMIT $page_size OFFSET $offset";
要获取找到的总行数,您可以运行此查询
SELECT FOUND_ROWS()
但是,执行2个单独的查询通常比使用SQL_CALC_FOUND_ROWS
更快。这是benchmark to explain