这是我的表结构,
我尝试运行查询
$sql = mysql_query("SELECT content,niche, COUNT(content) TotalCount FROM table_name GROUP by content HAVING COUNT(content)>=2");
我认为是给我corect结果,但有问题列出结果用PHP和删除按钮删除重复行之一
我得到PHP的结果
Content ID - Niche ID - TotalCount
208 - 2 - 2
210 - 32 - 3
但结果应该是
Content ID - Niche ID - TotalCount
208 - 2 - 2
208 - 2 - 2
210 - 32 - 3
210 - 32 - 3
210 - 32 - 3
即时通过PHP尝试结果显示
while($row = mysql_fetch_assoc($sql)) {
$array[] = $row;
}
foreach($array as $row) {
echo $row['content']." - ".$row['niche']." - ".$row['TotalCount']."<br>";
}
3 回答
我认为这就是你要求的,所有重复的行(带有row_id)以及重复的次数;
An SQLfiddle to test with .
GROUP BY
将折叠您正在分组的字段上的结果,在本例中为content
- 因此您只能看到两个结果 .如果你想保留
GROUP BY
技术,你也可以使用GROUP_CONCAT(niche)
为给定的content
值拉取每个niche
的逗号分隔列表:然后,您可以使用PHP的
explode(',', $row['niche'])
获取每个不同的值,然后使用它们来确定要删除的值 .在sql中进行以下更改: