在每一行上添加count()列

Nat*_*han 5 mysql sql

我不确定这是不是一个好问题.

我有一个复杂的查询与很多联合会搜索多个表的某个关键字(用户输入).搜索到的所有表都与表有关book.

使用LIMIT对结果集进行分页,因此总会有最多10个结果被撤消.

我希望结果集中有一个额外的列,显示找到的结果总量. 我不想使用单独的查询来执行此操作.是否可以在结果集中添加count()列来计算找到的每个结果?

输出看起来像这样:

ID    Title    Author    Count(...)  
1     book_1   auth_1      23  
2     book_2   auth_2      23  
4     book_4   auth_..     23  
Run Code Online (Sandbox Code Playgroud)

...

谢谢!

Ike*_*ker 5

这不会将计数添加到每一行,但是在不运行第二个查询的情况下获取总计数的一种方法是使用SQL_CALC_FOUND_ROWS选项运行您的第一个查询,然后选择FOUND_ROWS()。如果您想知道总共有多少个结果,以便可以计算页数,有时这很有用。

例:

select SQL_CALC_FOUND_ROWS ID, Title, Author
from yourtable
limit 0, 10;
SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)

从手册中:http : //dev.mysql.com/doc/refman/5.1/en/information-functions.html#function_found-rows