избиране на уникални стойности от колона

Имам таблица на 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
Решение

Използвайте оператора DISTINCT в MySQL:

SELECT DISTINCT(Date) AS Date FROM buy ORDER BY Date DESC;
Коментари (2)

използване на

SELECT DISTINCT Date FROM buy ORDER BY Date

така че MySQL да премахва дублиранията

BTW: използването на изрични имена на колони в SELECT използва по-малко ресурси в PHP, когато получавате голям резултат от MySQL

Коментари (6)

Останалите са почти правилни, само че трябва да се подредят по Дата DESC

SELECT DISTINCT(Date) AS Date FROM buy ORDER BY Date DESC;
Коментари (1)