Заказ чем-то, потом случайным? - PullRequest
5 голосов
/ 13 сентября 2011

У меня есть запрос, что-то вроде этого:

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

Таким образом, это означает, что сначала показываются записи с фотографиями, затем записи с описаниями.В рамках этого я хочу, чтобы порядок был случайным (поэтому, если есть десять записей с фотографиями, они всегда должны быть вверху, но упорядочены случайным образом)

Выше не работает, и я знаю, что rand () не великапроизводительность мудрая.Каким было бы еще одно простое решение?

1 Ответ

3 голосов
/ 13 сентября 2011

, вероятно, нужно немного изменить свой выбор, чтобы исключить описание из уравнения, поскольку вас интересует только, является ли он нулевым.

 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...