php - 如何计算匹配查询的行数,但只返回 SQL 中的一个子集?

标签 php mysql

目前我有这段代码:

$result = $db->prepare("SELECT * FROM `users` WHERE MATCH (`name`, `blurb`) AGAINST (:quer IN BOOLEAN MODE) LIMIT $rpage, $max_show;");
$result->execute(array(":quer" => $query));

$count = $db->prepare("SELECT COUNT(*) FROM `users` WHERE MATCH (`name`, `blurb`) AGAINST (:quer IN BOOLEAN MODE);");
$count->execute(array(":quer" => $query));

第一个查询从表中抓取一堆行。第二个计算与第一个条件匹配的行数,允许分页。

我可以将这两个查询合并为一个吗?它会更有效率吗?

最佳答案

使用 SQL_CALC_FOUND_ROWS 检查。您将其添加到第一个查询中的选择中,然后只需调用 SELECT FOUND_ROWS() 即可。您可以在这里阅读更多相关信息:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows .是的,这比运行搜索查询 2 次更有效率。

关于php - 如何计算匹配查询的行数,但只返回 SQL 中的一个子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803056/

相关文章:

php - 浏览器无法打开php页面?

java - 在 php 中登录到服务器端时在 android 中进行 session 处理

mysql - 最高效、可扩展的 mysql 数据库设计

php - 多行之间的MySQL比较

php - 如何删除 url (/web/index.php) yii 2 并使用干净的 url 参数设置路由?

php - 将面向对象的数据直接编码为关系数据库中的单行是否被认为是错误的形式?

mysql - 如何按天选出今天和明天少于指定时间的数据?

php - 在 MySQL 中计算一行?

mysql - 如何根据条件对结果进行分组?

MySql 在重复键上添加条件状态,如果不是重复键