【发布时间】:2016-11-01 10:08:20
【问题描述】:
我正在尝试找到一种方法来选择和计算我的数据库中的一些行。我正在检查 MySQL 文档,这就是我想出的:
$query = "SELECT *, COUNT(*) as total WHERE IMAGE != '' AND CATEGORY = '$category' $limit";
但是完成后会输出一行... :(
比我尝试过的:
$query = "SELECT * FROM PRODUCTS,
(SELECT COUNT(*) as total FROM PRODUCTS WHERE IMAGE != '' AND CATEGORY = '$category') as x
WHERE IMAGE != '' AND CATEGORY = '$category' $limit";
这可行,但是我真的不知道这是否会表现良好,因为有两个 SELECT 语句(我不需要'as x',但没有这个查询会失败)。
有没有更好的方法? 谢谢
【问题讨论】:
-
您能否提供一些示例数据和查询的预期结果?
-
如果代码看起来不容易受到 SQL 注入攻击会更好。
-
我猜你正在寻找SQL_CALC_FOUND_ROWS,例如this question
-
Oblig Percona article 参考。
-
谢谢!有人可以添加 SQL_CALC_FOUND_ROWS 相关解决方案作为答案吗?
标签: mysql sql select count row