在SQL中选择distinct?

时间:2016-03-06 10:07:36

标签: php

select distinct不工作,count(*)没有选择分组行的数量,但它选择了重复的msg_contents.Please帮助.. 我想选择不同的用户名和重复的用户名数。

<?php
require_once"cnc.php";

$sort = "SELECT hate_p FROM hate_t";
$qry = mysql_query($sort);
while($fet = mysql_fetch_assoc($qry)) {
    if($fet == 0) {
        echo "No Entries";
    } else {

        $sql = mysql_query("
            SELECT DISTINCT
                username,
                msg_content,
                COUNT(*) c
            FROM messages
            WHERE msg_content LIKE '%".$fet['hate_p']."%'
            GROUP BY username HAVING c>0"
        );

        while($messages = mysql_fetch_assoc($sql)) {
        ?>
        <tr>
            <td><?php echo $messages['username'];?></td>
            <td><?php echo $messages['c'];?></td>
        </tr>
        <?php
        }
    }
}
?>

2 个答案:

答案 0 :(得分:0)

在这种情况下你不需要区别,你可以只使用group by,distinct使用你选择的所有列(username,meg_content,count)获取所有行:

SELECT username,msg_content,COUNT(*) c
FROM messages WHERE msg_content LIKE '%".$fet['hate_p']."%'   
GROUP BY username,msg_content 
HAVING c>0

答案 1 :(得分:0)

从不同的地方删除msg_content?你已经拥有它了。而@gouda是对的,你可能根本不需要它。