0

データベースから旅館のリストを取得しています。一部はアップグレードされ、リストの一番上に表示されるようになります。現在、昇順でアップグレードされたショーに続いて、以下を使用する通常のショーが続きます。

SELECT Company FROM bandb Where BusinessState = '$State' AND BusinessCity = '$City' AND (Active = 'Web' OR Active = 'Name') ORDER by featured asc, Company asc

アップグレードされた旅館がランダムな順序で表示され、残りの旅館が昇順で表示されるように変更する必要がありますが、困惑しています。何か案は?

4

1 に答える 1

4

試す

SELECT Company, IF(featured, rand(), 0) AS rand_position
FROM bandb
Where BusinessState = '$State' AND BusinessCity = '$City' AND (Active = 'Web' OR Active = 'Name')
ORDER by featured asc, rand_position DESC, Company asc

会社が「特集」されている場合、その位置に対して乱数が生成されます。それ以外の場合は、0. 次に、そのランダム フィールドで並べ替えます。注目されていない企業は最下位になり、注目されている企業はその乱数の順序で表示されます。

于 2013-08-16T16:00:45.397 に答える