#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