het selecteren van unieke waarden uit een kolom

Ik heb een MySQL tabel die de volgende soort informatie bevat:

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

Hier is een voorbeeld van een script dat ik gebruik om gegevens uit deze tabel te halen:

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

Dit script geeft elke datum uit de tabel weer, bijv.

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

Ik zou alleen unieke data willen weergeven, bijv.

12.dec.2011
10.dec.2011
Oplossing

Gebruik de DISTINCT operator in MySQL:

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

gebruik

SELECT DISTINCT Date FROM buy ORDER BY Date

zodat MySQL duplicaten verwijdert

BTW: het gebruik van expliciete kolomnamen in SELECT gebruikt minder middelen in PHP wanneer je een groot resultaat van MySQL krijgt

Commentaren (6)

De rest is bijna correct, behalve dat ze moeten ordenen op datum DESC

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