0

所以我有这行代码:

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

一切都很好,高级会员出现在精选之上。推荐在普通会员之上,他们都是按字母顺序排列的。但是,我希望特色成员显示在常规成员之上,但随机而不是按字母顺序显示。我试过 RAND() 但它随机化了我所有的成员,请帮忙。

4

2 回答 2

2
SELECT * 
FROM members 
WHERE category1="Photographers" 
ORDER BY 
    premium DESC, 
    featured DESC, 
    CASE WHEN featured = 1 THEN RAND() ELSE company END ASC
于 2013-03-14T17:49:45.123 回答
1

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

SELECT * 
FROM members 
WHERE category1="Photographers" 
ORDER BY CASE WHEN Featured = 1 THEN 0 ELSE 1 END, Rand()
于 2013-03-14T17:49:15.843 回答