selezionare valori unici da una colonna

Ho una tabella MySQL che contiene il seguente tipo di informazioni:

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

Ecco un esempio di uno script che uso per ottenere dati da questa tabella:

<?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);
?> 

Questo script visualizza ogni data della tabella, per esempio

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

Vorrei visualizzare solo le date uniche, ad esempio

12.dec.2011
10.dec.2011
Soluzione

Usa l'operatore DISTINCT in MySQL:

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

utilizzare

SELECT DISTINCT Date FROM buy ORDER BY Date

così MySQL rimuove i duplicati

BTW: usare nomi di colonne espliciti in SELECT usa meno risorse in PHP quando si ottiene un grande risultato da MySQL

Commentari (6)

Il resto è quasi corretto, eccetto che dovrebbero ordinare per Data DESC

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