php
  • mysql
  • 2012-05-19 159 views 0 likes 
    0

    我想統計正面,中性,負面反饋的數量。我可以將這三個SQL查詢合併爲一個嗎?

    我有這3個看起來非常相似的查詢。有沒有一種方法可以將所有這些放入一個查詢中?或者它是最簡潔的做法?

    在此先感謝,問候。

    $total_positive_seller = mysql_num_rows(mysql_query("SELECT id FROM feedback 
          WHERE seller='$user' AND feedback='positive'")); 
    $total_neutral_seller = mysql_num_rows(mysql_query("SELECT id FROM feedback 
          WHERE seller='$user' AND feedback='neutral'")); 
    $total_negative_seller = mysql_num_rows(mysql_query("SELECT id FROM feedback 
          WHERE seller='$user' AND feedback='negative'")); 
    

    回答

    6

    如果您只是要計算外觀,您使用mysql_num_rows是相當低效。這將是更好地在下面的查詢使用MySQL的count(*)功能,例如:

    SELECT feedback, count(*) AS `count` 
        FROM feedback 
        WHERE seller='$user' 
        GROUP BY feedback 
    

    這給你的東西應該像下面

    feedback | count 
    ---------------- 
    positive | 12 
    neutral | 8 
    negative | 3 
    

    ,你可以事後分析此像任何其他查詢以行方式進行結果。

    編輯

    如果你想在你的下面的代碼seperatly解決每個條目,您可以使用類似於下面的東西。在此代碼後,您可以引用所有條目,例如$result['positive']

    $qres = mysql_query('SELECT ...'); 
    $result = array(); 
    while($row = mysql_fetch_array($qres)) { 
        $result[ $row['feedback' ] ] = $row['count']; 
    } 
    
    +0

    嗨,謝謝你的回覆。我如何計算一下,正面反饋的數量? – alexx0186

    +0

    @ alexx0186查看我剛剛編輯的內容。 – Sirko

    +0

    對不起,我正在努力與這個'AS'命令。我應該做些什麼像'count(positive)'?我不確定語法。非常感謝。 – alexx0186

    相關問題