Php 仅从数据库中选择以前未见过的值

Php 仅从数据库中选择以前未见过的值,php,pdo,Php,Pdo,假设我有一个数据库,其中存储了以下数据: Email-Link-Link2 1E@231-Example1-Example2 1E@231-Example3-Example4 如何通过PDO查询选择所有这些值,而不包括以前看到的值,所以在本例中1E@231,将只选择一次。如果您理解您所说的,这是您的答案: 通过PDO连接到数据库 <?php //CONNEXION TO DATA BASE WITH PDO... $pdo_options[PDO::ATTR_ERRMODE] = PD

假设我有一个数据库,其中存储了以下数据:

Email-Link-Link2
1E@231-Example1-Example2
1E@231-Example3-Example4

如何通过PDO查询选择所有这些值,而不包括以前看到的值,所以在本例中1E@231,将只选择一次。

如果您理解您所说的,这是您的答案:
通过PDO连接到数据库

<?php 
//CONNEXION TO DATA BASE WITH PDO...
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$base = new PDO('mysql:host=localhost;dbname=your_data_base', 'the_user', 'Your_password', $pdo_options);
//end of connexion to data_base
;?>

现在从数据库中获取数据时不需要重复(您可以使用sql函数DISTINCT

<?php
$sc=$base->query("SELECT DISTINCT Email FROM table_where_data_stored");
while($data_distinct =$sc->fetch()){
//your data will be displayed here

;}
;?>


希望这对您有所帮助!!

要避免双重选择,通常使用DISTINCT语句,如下所示:

SELECT DISTINCT *
FROM myTable
但避免重复选择的最佳方法是避免数据库中的冗余条目。据我所知,数据库中的两个条目第二个是更新条目,您不想覆盖前一个条目。这是一个众所周知的问题,通常是这样解决的:

SELECT DISTINCT *
FROM myTable
应该使用新电子邮件的起始日期是确定的,因此请添加一个字段“valid_from”,并将此WHERE语句添加到查询中:

WHERE valid_from > GETDATE()

GETDATE()
返回一个日期时间,因此选择“大于”就足够了。

更新您在Ques中尝试过的内容请添加更多详细信息,代码示例我无法添加代码,因为我不知道我必须做什么。在数据库表中,您可以有一个标志。此标志在被删除时设置为“1”。从一开始它就是“0”(欢迎来到SO!)虽然这个问题的措辞和格式看起来几乎是可以回答的:请在您的问题中编辑您是希望每次选择每个电子邮件地址都有一个(第一个?)属性元组,还是希望每个电子邮件地址在一系列“不相关”的选择上有一个属性元组。非常感谢!!!!!不客气!