Я показываю на мой взгляд всех пользователей моей пользовательской таблицы, в таблице есть поле под названием «порядок», в котором я присваиваю число первым 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")