2012-09-11 80 views
0

我在計算所有行時遇到了問題。我的查詢是:具有聚合函數的行計數

SELECT info.pid, Name, Addr, Phone, GROUP_CONCAT(URL) as URL 
FROM info, images WHERE info.pid = images.pid AND place='$kraj' GROUP BY info.pid 

我不能使用mysql_num_rows因爲group_concat()創建行(空值),即使沒有結果。

我試圖把COUNT()內查詢:

...GROUP_CONCAT(URL) as URL, COUNT(info.pid) as num FROM info... 

,但它爲每一個加盟計數不同的行。

有什麼建議嗎?

+0

請提供樣本數據和期望的輸出。 – RedFilter

回答

0

爲什麼不只是過濾出空值? :

SELECT info.pid, Name, Addr, Phone, GROUP_CONCAT(URL) as URL 
    FROM info 
    JOIN images 
    ON info.pid = images.pid 
WHERE place = ... 
    AND URL IS NOT NULL 
GROUP 
    BY info.pid 
; 
+0

工程很好,這是如何影響性能?它比計數快嗎? –

+0

@JamaicaBob:這將取決於你的表格,索引和數據的細節,以及你在做什麼與他們;但總的來說,我不希望這會對性能產生任何影響。 – ruakh