Auswahl eindeutiger Werte aus einer Spalte

Ich habe eine MySQL-Tabelle, die folgende Art von Informationen enthält:

    Date            product 
2011-12-12           azd
2011-12-12           yxm
2011-12-10           sdx
2011-12-10           ssdd  

Hier ist ein Beispiel für ein Skript, das ich verwende, um Daten aus dieser Tabelle abzurufen:

<?php

$con = mysql_connect("localhost","username","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("db", $con);
$sql=mysql_query("SELECT * FROM buy ORDER BY Date");
while($row = mysql_fetch_array($sql))
{

 echo "<li><a href='http://www.website/". $row['Date'].".html'>buy ". date("j, M Y", strtotime($row["Date"]))."</a></li>";

    }
    mysql_close($con);
?> 

Dieses Skript zeigt jedes Datum aus der Tabelle an, z.B.

12.dec 2011
12.dec.2011
10.dec.2011
10.dec.2011

Ich möchte nur eindeutige Daten anzeigen, z. B.

12.dec.2011
10.dec.2011
Lösung

Verwenden Sie den DISTINCT-Operator in MySQL:

SELECT DISTINCT(Date) AS Date FROM buy ORDER BY Date DESC;
Kommentare (2)

verwenden.

SELECT DISTINCT Date FROM buy ORDER BY Date

damit MySQL die Duplikate entfernt

BTW: die Verwendung expliziter Spaltennamen in SELECT verbraucht weniger Ressourcen in PHP, wenn Sie ein großes Ergebnis von MySQL erhalten

Kommentare (6)

Der Rest ist fast korrekt, außer dass sie nach Datum DESC geordnet sein sollten

SELECT DISTINCT(Date) AS Date FROM buy ORDER BY Date DESC;
Kommentare (1)