按件排序,然后是随机的?

时间:2011-09-13 00:31:16

标签: mysql sql

我有一个查询,如下所示:

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

所以这意味着,首先显示带有照片的记录,然后显示带有描述的记录。在其中,我希望订单是随机的(所以如果有十张带照片的记录,它们应该始终位于顶部但随机排序)

以上不起作用,我知道rand()并不是很好的表现。什么是另一个简单的解决方案?

1 个答案:

答案 0 :(得分:3)

可能想要改变你的选择以将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