0

我想计算以下查询返回的总行数:

SELECT table1.*, COUNT(table2.fk) * (100/18) AS 'number' 
FROM table1 INNER JOIN table2 ON table1.pk = table2.fk
WHERE table1.Street LIKE '$Street%' 
AND table1.City LIKE '$City%' 
AND table1.Zip LIKE '%$Zip' 
AND table1.DOBY LIKE '%$DOBY' 
AND table1.DOBM LIKE '%$DOBM' 
AND table1.DOBD LIKE '%$DOBD' 
AND table1.Gender LIKE '$gender%' 
AND table2.year>= 2004 
AND table2.type IN ('AA', 'AB', 'AC') 
GROUP BY table2.fk
HAVING (COUNT(table2.fk) * (100/18)) >= '$activity' 
ORDER BY DOBY, DOBM, DOBD ASC

查询将table1的主键作为table2的外键出现的次数或次数,并根据固定的数量计算百分比('number')。它工作得很好,但我无法获得为我的分页脚本找到的记录总数。如果有人能提供一些建议或解决方案,我将不胜感激。

4

2 回答 2

0

正如 Itay Moav 所说,一种编程语言应该有一个found_rows函数。根据函数文档,如果关键字不存在,它会返回SELECT带有关键字的语句的行数。LIMITLIMIT

如果没有,您可以SELECT对数据库进行另一个查询:SELECT FOUND_ROWS();. 它将返回相同的信息。

于 2012-04-08T03:28:52.677 回答
0

你可以做SQL_CALC_FOUND_ROWS(​​谷歌的确切语法)
然后使用SELECT FOUND_ROWS() AS total

于 2012-04-08T03:12:17.183 回答