Php 如何计算预期的行数
当我有这样一个mysql查询时:Php 如何计算预期的行数,php,mysql,Php,Mysql,当我有这样一个mysql查询时: SELECT i.`pk_faq_item`, i.`title`, i.`question`, i.`featured`, i.`published`, DATE_FORMAT(i.`datecreated`, '%d-%m-%Y %H:%i') as `datecreated`, DATE_FORMAT(i.`datechanged`, '%d-%m-%Y %H:%i') as `date
SELECT
i.`pk_faq_item`,
i.`title`,
i.`question`,
i.`featured`,
i.`published`,
DATE_FORMAT(i.`datecreated`, '%d-%m-%Y %H:%i') as `datecreated`,
DATE_FORMAT(i.`datechanged`, '%d-%m-%Y %H:%i') as `datechanged`,
i.`creator`,
i.`userchanged`,
if(ISNULL(s.`vote`), 0,SUM(s.`vote`)) as `votes`,
if(ISNULL(s.`vote`), 0,COUNT(*)) as `seen`
FROM `faq_item` i
LEFT JOIN `faq_item_stats` s ON i.`pk_faq_item` = s.`fk_faq_item`
GROUP BY i.`pk_faq_item`
LIMIT 0, 30
我怎么知道有多少结果没有限制0,30
伪查询:
这给了我一个这样的列表:
SELECT
i.`pk_faq_item`,
i.`title`,
i.`question`,
i.`featured`,
i.`published`,
DATE_FORMAT(i.`datecreated`, '%d-%m-%Y %H:%i') as `datecreated`,
DATE_FORMAT(i.`datechanged`, '%d-%m-%Y %H:%i') as `datechanged`,
i.`creator`,
i.`userchanged`,
if(ISNULL(s.`vote`), 0,SUM(s.`vote`)) as `votes`,
if(ISNULL(s.`vote`), 0,COUNT(*)) as `seen`
FROM `faq_item` i
LEFT JOIN `faq_item_stats` s ON i.`pk_faq_item` = s.`fk_faq_item`
GROUP BY i.`pk_faq_item`
LIMIT 0, 30
3.
1.
1.
1.
等等
但我期待着这样的事情:
SELECT
i.`pk_faq_item`,
i.`title`,
i.`question`,
i.`featured`,
i.`published`,
DATE_FORMAT(i.`datecreated`, '%d-%m-%Y %H:%i') as `datecreated`,
DATE_FORMAT(i.`datechanged`, '%d-%m-%Y %H:%i') as `datechanged`,
i.`creator`,
i.`userchanged`,
if(ISNULL(s.`vote`), 0,SUM(s.`vote`)) as `votes`,
if(ISNULL(s.`vote`), 0,COUNT(*)) as `seen`
FROM `faq_item` i
LEFT JOIN `faq_item_stats` s ON i.`pk_faq_item` = s.`fk_faq_item`
GROUP BY i.`pk_faq_item`
LIMIT 0, 30
137
我当前的解决方案
在我看来,这是一种糟糕的编程实践:
SELECT * FROM ints;
+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+---+
SELECT SQL_CALC_FOUND_ROWS * FROM ints LIMIT 3;
+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
+---+
SELECT FOUND_ROWS();
+--------------+
| FOUND_ROWS() |
+--------------+
| 10 |
+--------------+