两个查询或一个带有子查询的查询?

时间:2014-03-20 14:00:01

标签: mysql sql

我正在研究一些PHP代码,我偶然发现了这样的事情:

$query1 = "SELECT COUNT(*) FROM TABLE_A";
$query2 = "SELECT field_a,field_b FROM TABLE_A";

我知道这些查询与以下内容相同:

$query3 = "SELECT (SELECT COUNT(*) FROM TABLE_A), * from TABLE_A";

正在打开的连接数或正在执行的查询将会减少。但从表面上看,这将是一个更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

在第一个查询中使用指令SQL_CALC_FOUND_ROWS,在第二个查询中使用FOUND_ROWS()函数。

SELECT SQL_CALC_FOUND_ROWS, field_a, field_b FROM TABLE_A;

SELECT FOUND_ROWS();

如果您的查询有LIMIT,则FOUND_ROWS()无论如何返回与查询条件匹配的所有记录的计数