2016-03-06 27 views
0

我的表如下:計數count- PHP MYSQL的

guid version 

A1 lol 
A2 roflmao 
A1 lol 
A1 lol 
A2 lol 
A3 roflmao 
A3 roflmao 
A3 roflmao 
A3 roflmao 
A3 roflmao 
A3 roflmao 
A4 roflmao 
A4 roflmao 
A5 lol 
A5 lol 

我想指望再次數低於3次(每GUID)總roflmao出現。

到目前爲止,我下面的,但它不輸出任何東西:

$sql="select guid,version, count(*) as `count` 
from mytable WHERE version = 'roflmao' group by guid having `count` < 3'"; 

if ($result=mysqli_query($con,$sql)) 
{ 

// Return the number of rows in result set 

$rowcount=mysqli_num_rows($result); 
printf($rowcount); 

// Free result set 

mysqli_free_result($result); 
} 
+0

計數(*)???這應該如何工作?計數(版本)也許? –

+0

您的查詢完好。簡單地刪除關閉單引號。 [工作演示](http://sqlfiddle.com/#!9/a311c/2) – fusion3k

+0

他的查詢不好@ fusion3k – sagi

回答

2

試試這個:

SELECT COUNT(*) FROM (
    SELECT guid 
    FROM YourTable 
    WHERE version = 'roflmao' 
    GROUP BY guid 
    HAVING COUNT(*) <3) t 

這首先選擇所有的GUID有「roflmao」出現少他們3次,然後對它們進行計數。

+0

我試過這個,我得到這個錯誤:#1248 - 每個派生表都必須有自己的別名 –

+0

你必須在末尾添加'as something'。 – fusion3k

+0

@CodyRaspien我總是忘記mysql要求爲每個子查詢別名。現在接受它將工作 – sagi