簡體   English   中英

PHP / MySQL - 選擇表中的每種類型之一

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM