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

ORDERBYのような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 に答える