我有一個查詢按最新新聞故事順序列出主題公園。查詢如下。通過未按日期正確排序的組
$sql2 = 'SELECT tpf_news.park_id, name
FROM tpf_news
INNER JOIN tpf_parks ON tpf_news.park_id = tpf_parks.park_id GROUP BY name ORDER BY date DESC ' ;
$result2 = $pdo->query($sql2);
這是工作正常,直到一個主題公園有超過一個的新聞報道,被分組的日期是舊日期,而不是新的,因此主題公園將保持在原來的位置,不要輕易的頂部附有新故事時的清單。我如何更改查詢,以便最近的日期完成分組?
如果需要,下面是顯示數據的PHP foreach。
<?php foreach ($result2 as $row2): ?>
<h4>
<a class="bloglink" href="parknews.php?park_id=<?php echo $row2['park_id'];?>">
<?php echo $row2['name']; ?>
</a>
</h4>
<br>
<?php endforeach; ?>
感謝
是什麼'date'的數據類型?你會想按照'date'的順序降序排列,最近的排在第一位。如果日期字段不是日期類型,請將其轉換爲:'ORDER BY STR_TO_DATE(date)DESC' – binnyb
數據類型爲日期。這是所有工作,直到一個主題公園有兩個日期。我必須對結果進行分組,因爲每個公園只應在列表中列出一次 – themeparkfocus
如果數據類型爲「日期」將其更改爲「日期時間」。也可以在group by子句中使用自動增量或PK。 –