запрос сортировки записей случайным - PullRequest
0 голосов
/ 01 апреля 2020

Я показываю на мой взгляд всех пользователей моей пользовательской таблицы, в таблице есть поле под названием «порядок», в котором я присваиваю число первым 170 записям, чтобы эти пользователи, которые имели значение в «» В поле «Порядок» сначала будут показаны те, у кого в этом поле был ноль.

Я использую случайную функцию в запросе, чтобы случайным образом показать те записи со значением в поле «Порядок» меньше 170, и Я сделал это следующим образом:

    @users = @users.order("CASE WHEN (`order` IS NULL OR `order` = 0) THEN 1 ELSE 0 END, CASE WHEN (`order` IS NULL OR `order` = 0) THEN 1 ELSE 0 END, CASE WHEN `order` <= 170 THEN RAND() ELSE `order` END")

запрос работает, но мне также нужно, чтобы некоторые пользователи (с plan_id> 1 и sponsor = true) появлялись первыми и случайным образом перед остальными. Можно ли было бы упорядочить их таким образом, чтобы они имели случайную функцию раньше?

Я пытаюсь сделать это следующим образом, но мне не показываются те, у кого условная сначала

    @users = @users.order("CASE WHEN (`order` IS NULL OR `order` = 0) THEN 1 ELSE 0 END, CASE WHEN `order` <= 170 THEN RAND() ELSE `order` END,CASE WHEN (sponsor = FALSE) THEN 1 ELSE 0 END,CASE WHEN (plan_id = 1) THEN 1 ELSE 0 END")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...