Как упорядочить результаты запроса mysql по random() и по другому полю?

#php #mysql #sql #random #sql-order-by

#php #mysql #sql #Случайный #sql-order-by

Вопрос:

У меня есть следующий запрос, который сортирует результаты случайным образом:

 $sql = "SELECT *, `active` FROM `profiles` WHERE CONCAT(',' , pfCategory , ',') LIKE '%$category%' AND `active`='1' ORDER BY RAND()";
  

Я хотел бы добавить логическое поле в profiles таблицу, чтобы случайные результаты со значением 1 отображались поверх результатов со значением 0 в случайном списке. Возможно ли это? Спасибо

Комментарии:

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

Ответ №1:

Попробуйте использовать запрос ниже:

 $sql = "SELECT *, `active` FROM `profiles` WHERE CONCAT(',' , pfCategory , ',') LIKE '%$category%' AND `active`='1' ORDER BY boolean_field_name DESC, RAND()";
  

Ответ №2:

Вы можете использовать

 $sql = "SELECT *, `active` FROM `profiles` WHERE CONCAT(',' , pfCategory , ',') LIKE '%$category%' AND `active`='1' ORDER BY active, RAND()";
  

если активно — это поле для сортировки.

С наилучшими пожеланиями, Небойса

Ответ №3:

вы можете использовать пример здесь

  order by case when `active`='1' then 0
               else rand() end