Мне нужна помощь с DISTINCT. Я хотел бы отобразить отдельную строку, но отобразить только последний порядок строк буксировки по дате (col3)
Пример этой таблицы из базы данных:
+----+-----+------------+
|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
Следующий запрос
$query = mysql_query('select DISTINCT `column name` from table1 ORDER BY col3 DESC LIMIT 2');
Других решений пока нет …