[英]PHP/MySQL - Select One of Each Type In Table
我正在創建一個包含許多不同類別的博客,在我的主頁上,我想展示每個類別的一篇文章(除了可能是“miscelanious”),但我不確定是否有一個簡單的單行解決方案。 我希望有類似的東西:
"SELECT * FROM blogs WHERE cat != 'misc' ORDER BY added LIMIT (ONE OF EACH CAT TYPE)"
這樣的事情可能嗎?
只是GROUP BY
類別 -
SELECT *
FROM blogs WHERE cat != 'misc'
GROUP BY cat
ORDER BY added
您可以通過這種方式嘗試GROUP BY
您的類別。 了解有關GROUP BY
更多信息https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
SELECT * FROM blogs WHERE cat != 'misc' GROUP BY cat ORDER BY added
如果你想在每個類別中找到最新的條目,你將不得不弄清楚哪個條目是最新的,然后加入以返回它 - 如果需要,你可以使用子選擇來執行此操作:
SELECT b.*
FROM blogs `b`
INNER JOIN (SELECT `category`, MAX(`added`) AS `max_add` FROM `blogs` GROUP BY `category` WHERE `category` != 'misc') `a`
ON `a`.`category` = `b`.`category` AND `a`.`max_add` = `b`.`added`
(或者類似的東西 - 如果可能的話,最好加入PK)
這個問題對一般問題給出了非常詳細的回答。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.