MySQL按組前排序這里有很多類似的問題,但我認(rèn)為沒有人能充分回答這個(gè)問題。我將繼續(xù)從當(dāng)前最受歡迎的問題如果可以的話,就用他們的例子。此實(shí)例中的任務(wù)是獲取數(shù)據(jù)庫中每個(gè)作者的最新帖子。示例查詢產(chǎn)生不可用的結(jié)果,因?yàn)樗⒉豢偸欠祷氐淖钚绿?。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目前公認(rèn)的答案是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不幸的是,這個(gè)答案顯然是錯(cuò)誤的,而且在許多情況下產(chǎn)生的結(jié)果不如原始查詢那么穩(wěn)定。我最好的解決方案是使用表單的子查詢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我的問題很簡單:在不訴諸子查詢的情況下,在分組之前是否需要對行進(jìn)行排序?編輯:這個(gè)問題是對另一個(gè)問題的延續(xù),我的具體情況略有不同。您可以(而且應(yīng)該)假設(shè)還存在一個(gè)wp_posts.id,它是該特定帖子的唯一標(biāo)識符。
添加回答
舉報(bào)
0/150
提交
取消