从一个列中选择唯一的值

我有一个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)