2014-10-10 36 views
0

選擇隨機行中我有一個選擇類似像這樣的:mysql的從複雜的結果

SELECT TABLE_4.ID, TABLE_4.USERNAME, TABLE_4.PHOTO, 

SELECT(COUNT(SOMETHING) FROM TABLE_1 WHERE ..) AS NUM_ALL 
SELECT(COUNT(SOMETHING) FROM TABLE_1 WHERE ..) AS NUM_DONE 
SELECT(COUNT(SOMETHING) FROM TABLE_2 WHERE ..) AS NUM_LIKES 

SELECT(COUNT(SOMETHING) FROM TABLE_3 WHERE ..) AS FOLLOWING 
SELECT(COUNT(SOMETHING) FROM TABLE_3 WHERE ..) AS FOLLOWERS 

CASE WHEN... 

FROM TABLE_4 
LEFT JOIN... 
LEFT JOIN... 
LEFT JOIN... 

WHERE <condition> 

GROUP BY TABLE_4.ID LIMIT 1000; 

說,有5000個結果此查詢。我想隨機選擇第一個1000。我認爲rand()對於這個複雜且漫長的查詢來說是不成問題的。

你能幫我一把嗎?

回答

0

是的,你可以使用RAND。只需添加

... ORDER BY RAND() LIMIT 1000; 

您的查詢結束。無論查詢有多完整,RAND()將在最終結果出現時應用(EXPLAIN結果的第一行)。