我不确定这是不是一个好问题.
我有一个复杂的查询与很多联合会搜索多个表的某个关键字(用户输入).搜索到的所有表都与表有关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)
...
谢谢!
这不会将计数添加到每一行,但是在不运行第二个查询的情况下获取总计数的一种方法是使用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
| 归档时间: |
|
| 查看次数: |
26241 次 |
| 最近记录: |