2016-11-06 6 views
0

値を含む行をカウントする:(?)(?)SQLクエリは、私は例えば私のウェブサイトの側にいくつかのフィルタを備えています

フィルターセット1

  • アルファ
  • メルセデス
  • ローバー(?)
  • BMW(?)
  • ランチア(?)
  • フィアット(?)
  • フォード(?)

フィルタ2

  • 2人乗り(?)
  • 3人乗り(?)
  • 4人乗り(?)
  • 5人乗りの(設定しましたか? )

今私は、フィルタの後ろに何を返すの数をしたいですそのフィルタを選択すると結果が出力されます。

だから「(10)」と2人乗りの後ろに立つだろう「(25)」例えば10アルファのと立って、その後のアルファの背後にある、データベース内の25 2シーターがあります。しかし、私がアルファフィルターを選択した場合、それは2つのシートャーである4つのアルファしかないので、2つのシーターフィルターの後ろに "(4)"と言う必要があります。

私は車をフィルタリングして戻すには、このクエリを使用しますが、これは完全な配列を返す

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

どのように私はちょうど数を返すために、それを変更することができますか?

ありがとうございます。

答えて

0

私が正しく理解していれば、あなたはSを記入します。これは、リストごとに別々のクエリを伴うだろう:

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]}%' 
関連する問題