如果值显示两次,则返回一行


Returning one row if the value is shown twice

为什么对这个问题投反对票

因此,我正在进行一个项目,该项目将显示注册用户,如果注册用户在另一个mysql表中有一个产品,则用户的电子邮件将显示在另一列表中,但只显示一次

在数据库中,用户的电子邮件是每个产品的绑定点,因此,如果用户有两个产品,则电子邮件将在数据库中设置两次,但设置在两个不同的行上。

所以我需要做的是,如果电子邮件被发送了两次,就隐藏一行

通过对mysql进行一些更改,这是可能的吗?还是可以用php-if语句修改该语句?如果是,如何修改
LIMIT 1在这个查询中似乎不起作用。

下面的代码显示:
mail@aaa.com
mail@aaa.com
mail@aaa.com
mail@bbb.com
mail@ccc.com

我希望它显示:
mail@aaa.com
mail@bbb.com
mail@ccc.com

感谢
Jim

<?php 
    $user_list = "";
        $sql = mysql_query("SELECT * FROM userproducts");
        $userCount = mysql_num_rows($sql);
        if ($userCount > 0){
            while($row = mysql_fetch_array($sql)){
                $email = $row["user"];
                $user_list .= '<table width="300">
                                <tr>
                                    <td>'.$email.'</td>
                                </tr>
                              </table>';
            }
        }else{
                $user_list = "We have no users with special prices yet";
        }
?>

将GROUP BY添加到查询

SELECT * FROM userproducts GROUP BY user

或者使用DISTINCT获取唯一用户

SELECT DISTINCT(user) FROM userproducts

使用:

SELECT DISTINCT(user) FROM userproducts

在查询中。