计数count- PHP MYSQL的

问题描述:

我的表如下:计数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

试试这个:

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