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

时间:2013-07-05 12:04:50

标签: php mysql

为什么要对这个问题进行投票?

所以我正在开发一个显示注册用户的项目,如果注册用户在另一个mysql表中有产品,那么用户的电子邮件将显示在另一个列表中,但只显示一次。

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

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

这可能是对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

谢谢你 吉姆

<?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";
        }
?>

2 个答案:

答案 0 :(得分:3)

将GROUP BY添加到查询

SELECT * FROM userproducts GROUP BY user

或使用DISTINCT获取唯一身份用户

SELECT DISTINCT(user) FROM userproducts

答案 1 :(得分:2)

使用:

SELECT DISTINCT(user) FROM userproducts
在查询中