繁体   English   中英

在同一查询中获取表的总行数和前10行

[英]Get total row count and first 10 rows from table in the same query

我正在尝试编写一个mysql查询,以便可以检索表的前10行并在同一查询中获得总行数。

即结合

SELECT * FROM myTable LIMIT 10; // Get First 10 Rows

SELECT COUNT(*) as cnt FROM myTable // Total Row Count

在同一查询中。

由于我使用的是PHP,因此从技术上讲,我可以执行:

SELECT * FROM myTable

然后使用count()获得总行数,并使用array_slice获得前10个数组元素。

但这听起来不是很有效。

SELECT SQL_CALC_FOUND_ROWS * FROM myTable LIMIT 10;

SELECT FOUND_ROWS();

它不是完全在一个查询中,但是第二个查询始终是相同的,因此不必再次执行完整的上一个查询,如果它是一个复杂的查询,则很好。

正是第一个查询中的SQL_CALC_FOUND_ROWS子句导致计算记录总数,就好像未添加限制一样。

SELECT COUNT(*),* as cnt FROM myTable group by (anyROW) limit 10

SELECT myTable.*, count(*) as count from myTable LIMIT 10;

应该这样做:

SELECT (SELECT count(*) FROM TheTable) as ct, TheTable.* FROM TheTable limit 10;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM