2016-11-06 72 views
0

我在我的網站上的例如側一些過濾器值的行:(?)(?)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]}%' 

我怎樣才能改變它返回只是一個數字?

謝謝。

回答

0

如果我理解正確的話,你要填寫的 「?」。這將涉及到一個單獨的查詢每個列表:

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性能方面的原因 - 每個查詢都有自己的開銷。

0
SELECT count(A_rowname) As count FROM cars WHERE brand LIKE '%{$_GET[brand]}%' 
AND seater LIKE '%{$_GET[seater]}%' 
0

簡單COUNT(),而不是*

SELECT COUNT(*) 
FROM cars 
WHERE brand LIKE '%{$_GET[brand]}%' 
AND seater LIKE '%{$_GET[seater]}%'