カラムからユニークな値を選択する

以下のような情報を含むMySQLのテーブルがあります。

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

以下は、このテーブルからデータを取得するために使用するスクリプトの一例です。

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

このスクリプトは、テーブルからすべての日付を表示します。

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

固有の日付のみを表示したいのですが、たとえば

12.dec.2011
10.dec.2011
ソリューション

MySQLでDISTINCT演算子を使用する。

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

使用

SELECT DISTINCT Date FROM buy ORDER BY Date

を使用すると、MySQLは重複を削除します。

ところで、SELECT で明示的なカラム名を使用すると、MySQL から大きな結果を得るときに PHP のリソースが少なくて済みます。

解説 (6)

残りの部分はほぼ正しいのですが、日付のDESCで並べる必要があります。

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