随机化一个特定组mysql



所以我有这行代码:

$results = mysql_query('
    SELECT * 
    FROM members 
    WHERE category1="Photographers" 
    ORDER BY premium DESC, featured DESC, company ASC');

一切都很好,高级会员出现在上面的特色。在普通成员的上方,他们都是按字母顺序排列的。然而,我想有特色的成员显示以上的常规成员,但随机的,而不是按字母顺序。我试过RAND(),但它随机化了我所有的成员,请帮助。

SELECT * 
FROM members 
WHERE category1="Photographers" 
ORDER BY 
    premium DESC, 
    featured DESC, 
    CASE WHEN featured = 1 THEN RAND() ELSE company END ASC

您可以在ORDER BY中使用CASE,例如

SELECT * 
FROM members 
WHERE category1="Photographers" 
ORDER BY CASE WHEN Featured = 1 THEN 0 ELSE 1 END, Rand()

最新更新