MySQL选择特定数量并计算所有可能的数量

时间:2012-05-31 12:49:27

标签: mysql select count

我认为这是一个简单的问题,但谷歌只给我选择和统计结果。

我想知道是否可以从具有限制的表中进行选择,并计算通常会受查询影响的所有行。

例如:

我在桌面车上排了100排,我选择了前20个,我想在一个查询中计算汽车表中有多少辆汽车。

提前致谢

2 个答案:

答案 0 :(得分:1)

使用SQL_CALC_FOUND_ROWS,然后使用FOUND_ROWS()功能:

SELECT SQL_CALC_FOUND_ROWS * FROM ... LIMIT 100;
SELECT FOUND_ROWS();

答案 1 :(得分:1)

如果我了解您的需要(我理解您需要有限查询的结果加上整个表中的行数),可以使用SELECT子查询或使用JOIN针对子查询。由于您只希望从计数查询中返回一行,因此可以使用笛卡尔连接(没有ON子句)。然后,所有行的计数显示为每列的相同值。

SELECT
  cars.*,
  carcount.numcars
FROM
  cars
  JOIN (SELECT COUNT(*) AS numcars FROM cars) carcount
LIMIT 20

会产生类似

的结果
make     model     numcars
ford     focus     100
ford     model t   100
...
...
20 rows, numcars always = 100