我认为这是一个简单的问题,但谷歌只给我选择和统计结果。
我想知道是否可以从具有限制的表中进行选择,并计算通常会受查询影响的所有行。
例如:
我在桌面车上排了100排,我选择了前20个,我想在一个查询中计算汽车表中有多少辆汽车。
提前致谢
答案 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