我想计算以下查询返回的总行数:
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')。它工作得很好,但是我无法获得为我的分页脚本找到的记录总数。 如果有人能提出一些建议或解决方案,我将不胜感激。
答案 0 :(得分:0)
你可以SQL_CALC_FOUND_ROWS
(谷歌的确切语法)
然后使用SELECT FOUND_ROWS() AS total
答案 1 :(得分:0)
与Itay Moav所说的一样,编程语言应该具有found_rows
函数的功能。根据{{3}},如果SELECT
关键字不存在,它会返回带有LIMIT
关键字的LIMIT
语句的行数。
如果没有,您只需对数据库进行另一次SELECT
查询:SELECT FOUND_ROWS();
。它将返回相同的信息。