在同一查询中选择和计算行?

时间:2016-06-29 15:30:01

标签: mysql sql select count row

我正在尝试找到一种方法来选择和计算数据库中的某些行。我正在检查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语句(我不需要'作为x',但没有这个查询失败)。

有更好的方法吗? 感谢

2 个答案:

答案 0 :(得分:0)

另一种方法是使用sub-query但不确定性能应该只执行一次,因为外表没有相关性

SELECT *, (select COUNT(*) from PRODUCTS) as total
WHERE IMAGE != '' 
AND CATEGORY = '$category' $limit

答案 1 :(得分:0)

enter image description here

嘿,您是否正在寻找类似的东西? 如果是,则没有必要计算计数,因为您以后可以计算查询结果以在程序中获得总和。