使用Sphinx MySQL获取结果总数

时间:2016-03-23 12:44:00

标签: mysql sphinx

如何使用mysql和sphinx获取结果总数?

首先,我尝试使用PDO语句,它会返回一个数字,但不准确。

$array = $pdo_sphinx->prepare("select * from `my_index` where MATCH ('@name ($search)') limit $start, $limit");
$array->execute(); 

$query = $pdo_sphinx->prepare("select COUNT(*) from `my_index` where MATCH ('@name ($search)')");
$query->execute();      
$total = $query->fetchColumn();

然后我看到如果您在查询后运行它,可以从total_found获取SHOW META

$array = $sphinx->Query("select * from `my_index` where MATCH ('@name ($search)') limit $start, $limit; SHOW META");

$total = $array['total_found'];

$ total返回0,应该是9.如何从上面的查询中获得正确的total_found?有没有办法用PDO语句执行此操作?我需要正确的分页结果

1 个答案:

答案 0 :(得分:1)

注意当你添加'SHOW META'时,它会使它成为一个多查询。有两个单独的查询,每个查询都有自己的结果集。

(是的,使用COUNT(*)可能不准确,因为分组可能有些近似)