2012-09-11 82 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