SQL查询来计算包含
问题描述:
我在我的网站上的例如侧一些过滤器值的行:(?)(?)SQL查询来计算包含
过滤器设置1
- 阿尔法
- 奔驰
- 罗孚(?)
- 宝马(?)
- 蓝旗亚(?)
- 菲亚特(?)
- 福特(?)
滤波器组2
- 2座(?)
- 3座(?)
- 4座(?)
- 5座(? )
现在我想的过滤器后一个数字,返回多少如果选择的是筛选结果将PUP-起来。
因此,有例如10个阿尔法和数据库中的那么后面的阿尔法会站25座赛车2“(10)”和后面的2座会站在“(25)”。但是,如果我选择了阿尔法过滤器有说“(4)”后面的2人座的过滤器,因为只有4阿尔法的也有2座跑车。
我用这个查询筛选和返回的车,但它返回一个完整的数组:
SELECT *
FROM cars
WHERE brand LIKE '%{$_GET[brand]}%'
AND seater LIKE '%{$_GET[seater]}%'
我怎样才能改变它返回只是一个数字?
谢谢。
答
如果我理解正确的话,你要填写的 “?”。这将涉及到一个单独的查询每个列表:
SELECT brand, count(*) as cnt
FROM cars
GROUP BY brand;
SELECT seater, count(*) as cnt
FROM cars
GROUP BY seater;
查询返回由用户选择的组合 - 每一行或计数(如果使用聚合查询)。但是,我解释了一个问题,将信息添加到列表本身。
我要指出,你可以得到计数列表中的每个值:
SELECT count(*) as cnt
FROM cars
WHERE brand = 'Alfa'
不过,我劝你还是使用GROUP BY
性能方面的原因 - 每个查询都有自己的开销。
答
SELECT count(A_rowname) As count FROM cars WHERE brand LIKE '%{$_GET[brand]}%'
AND seater LIKE '%{$_GET[seater]}%'
答
简单COUNT()
,而不是*
:
SELECT COUNT(*)
FROM cars
WHERE brand LIKE '%{$_GET[brand]}%'
AND seater LIKE '%{$_GET[seater]}%'