MySQL按組前排序這里有很多類似的問題,但我認為沒有人能充分回答這個問題。我將繼續從當前最受歡迎的問題如果可以的話,就用他們的例子。此實例中的任務是獲取數據庫中每個作者的最新帖子。示例查詢產生不可用的結果,因為它并不總是返回的最新帖子。SELECT wp_posts.* FROM wp_posts WHERE wp_posts.post_status='publish'
AND wp_posts.post_type='post'
GROUP BY wp_posts.post_author
ORDER BY wp_posts.post_date DESC目前公認的答案是SELECT
wp_posts.*FROM wp_postsWHERE
wp_posts.post_status='publish'
AND wp_posts.post_type='post'GROUP BY wp_posts.post_authorHAVING wp_posts.post_date = MAX(wp_posts.post_date) <- ONLY THE LAST POST FOR EACH AUTHORORDER BY wp_posts.post_date DESC不幸的是,這個答案顯然是錯誤的,而且在許多情況下產生的結果不如原始查詢那么穩定。我最好的解決方案是使用表單的子查詢SELECT wp_posts.* FROM (
SELECT *
FROM wp_posts ORDER BY wp_posts.post_date DESC) AS wp_postsWHERE wp_posts.post_status='publish'AND wp_posts.post_type='post'GROUP BY wp_posts.post_author我的問題很簡單:在不訴諸子查詢的情況下,在分組之前是否需要對行進行排序?編輯:這個問題是對另一個問題的延續,我的具體情況略有不同。您可以(而且應該)假設還存在一個wp_posts.id,它是該特定帖子的唯一標識符。
添加回答
舉報
0/150
提交
取消