2011-09-13 123 views
4

我有一個查詢,像這樣:按順序排列,然後隨機?

..ORDER BY photo.sort_order DESC, profile.description DESC, RAND()

因此,這意味着,用照片記錄首先顯示,然後那些描述。其中,我希望訂單是隨機的(所以如果有10張帶有照片的記錄,它們應該始終位於頂部,但是應該隨機排列)

上面的方法並不奏效,我知道rand() 。什麼是另一個簡單的解決方案?

+0

它以什麼方式不起作用? – dispake

+0

訂單不變 – gio

回答

2

可能希望更改您的選擇,以便將desc txt排除在等式之外,因爲您只關心它是否爲空。

select photo.sort_order, 
     profile.description is not null as desc_order, 
     profile.description, 
     rand() as r 
from 
     photo photo, profile profile 
order by 
     photo.sort_order desc, 
     desc_order desc, 
     r 
+0

優雅地做了竅門。謝謝 – gio

+1

如果不需要實際值,我不一定會將desc_order和r添加到'select'子句中,因爲它會增加正在傳輸的數據量。只需將表達式本身添加到'order by'子句中即可。 – jswolf19

相關問題