1

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

所以我正在做一个显示注册用户的项目,如果注册用户在另一个 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";
        }
?>
4

2 回答 2

3

在查询中添加 GROUP BY

SELECT * FROM userproducts GROUP BY user

或使用 DISTINCT 获取唯一用户

SELECT DISTINCT(user) FROM userproducts
于 2013-07-05T12:07:09.813 回答
2

采用:

SELECT DISTINCT(user) FROM userproducts

在查询中。

于 2013-07-05T12:11:22.983 回答