2014-10-16 51 views
0

我需要DISTINCT的幫助。我想呈現出不同的行,但日期只顯示最新拖行順序(COL3)PHP MySQL查詢選擇DISTINCT,但顯示有限行按日期排序

實例此表從數據庫:

+----+-----+------------+ 
|col1|col2 |col3  | 
+----+-----+------------+ 
|A |one |1-jul-2013 | 
|A |two |2-jul-2013 | 
|A |three|3-jul-2013 | 
|A |four |4-jul-2013 | 
|A |five |5-jul-2013 | 
|B |one |1-jul-2013 | 
|B |two |2-jul-2013 | 
|B |three|3-jul-2013 | 
|B |four |4-jul-2013 | 
|B |five |5-jul-2013 | 
|B |six |6-jul-2013 | 
|B |seven|7-jul-2013 | 
|B |eight|8-jul-2013 | 
+----+-----+-----+ 

$query = mysql_query('select * from table1 ORDER BY col3 DESC'); 
$results = array(); 

while($row = mysql_fetch_assoc($query)) { 
    $col1= $row['col1']; 

    // This is basically grouping your rows by col1 
    if(!isset($results[$col1])) 
     $results[$col1] = array(); 
    $results[$col1][] = $row; 
} 

echo "<tr>"; 

foreach($results as $col1=> $rows) { 

    echo "<td>".$col1."</td>"; 

    foreach($rows as $row) { 
     echo "<td>".$row['col2']."</td>"; 
    } 

    echo"</tr>"; 
} 

我需要一些關於它的修改..我想不同的,只顯示最新的2排

我想顯示器看起來像這樣:

A |one |two 

B |one |two 
+0

將「LIMIT 2」添加到查詢結尾處? – DragonYen 2014-10-16 16:58:17

+0

花一些時間來正確地格式化您的問題。 – Ejaz 2014-10-16 17:00:52

+0

這是MySQL。我看不到任何日期,只有字符串和整數 – Strawberry 2014-10-16 19:02:19

回答

0

以下是查詢,

$query = mysql_query('select DISTINCT `column name` from table1 ORDER BY col3 DESC LIMIT 2'); 
+0

除COUNT(DISTINCT X)之類的東西外,選擇的列與distinct不相關。 DISTINCT使用結果的所有字段提供不同的結果記錄。 – Uueerdo 2014-10-16 17:23:57

+0

DISTINCT是不行的..這是分組的方法和如果我添加LIMIT 2它只顯示2組..我希望所有組像A B C D E F G但如果我們有5記錄A.我們只抓取兩個記錄命令我的日期 – 2014-10-17 08:40:48