如何获得以及查询的总记录细节是有一个限度
问题描述:
如何获得总记录的详细信息与是有一个限度以下如何获得以及查询的总记录细节是有一个限度
SELECT name FROM employees LIMIT 10
我MySQL
查询给出的查询一起
这将给我10
行,但总记录将在6000
左右。我们怎样才能像也随着上述查询
答
使用子查询:
SELECT name, (SELECT COUNT(*) FROM employees) AS cnt
FROM employees
LIMIT 10
答
使用Sub-query
SELECT nameFROM,
(select count(1) from employees) as total_count
From employees
LIMIT 10
或CROSS JOIN
SELECT nameFROM,total_count
From employees
CROSS JOIN (select count(1) total_count from employees) A
LIMIT 10
添加ORDER BY
到您的查询将使结果一致
答
您可以在查询中使用SQL_CALC_FOUND_ROWS选项,该选项将告诉MySQL统计不考虑LIMIT子句的总行数。您仍然需要执行第二个查询以检索行数,但这是一个简单的查询,并且不像检索数据的查询那么复杂。用法很简单。在你主查询你需要添加SQL_CALC_FOUND_ROWS选项,只需选择后在第二个查询你需要使用FOUND_ROWS()函数来获取行
SELECT SQL_CALC_FOUND_ROWS name FROM employees WHERE LIMIT 10
SELECT FOUND_ROWS();
+0
但是我没有得到6000 for SQL_CALC_FOUND_ROWS –
答
总数
(SELECT NAME, 1 AS 'Obs' FROM employees LIMIT 10)
union select 'RecsinTable', count(*) from employees
见http://meta.*.com/questions/333952/why-should-i-provide-an-mcve-for-what-seem-to-be-a-very-simple-sql-query – Strawberry