velge unike verdier fra en kolonne

Jeg har en MySQL-tabell som inneholder følgende type informasjon:

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

Her er et eksempel på et skript jeg bruker for å hente data fra denne tabellen:

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

Dette skriptet viser alle datoer fra tabellen, f.eks.

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

Jeg vil bare vise unike datoer, f.eks.

12.dec.2011
10.dec.2011
Løsning

Bruk DISTINCT-operatoren i MySQL:

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

bruk

SELECT DISTINCT Date FROM buy ORDER BY Date

slik at MySQL fjerner duplikater

BTW: å bruke eksplisitte kolonnenavn i SELECT bruker mindre ressurser i PHP når du henter et stort resultat fra MySQL.

Kommentarer (6)

Resten er nesten korrekte, bortsett fra at de skal ordnes etter Date DESC.

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