2016-05-06 2 views
0

У меня есть таблица в MySQL, и эта таблица содержит информацию о рекламе на моем веб-сайте. В некоторых случаях строка должна идти сверху результата запроса, которая должна отображаться сначала на странице, и это может потребоваться для некоторых других строк. Я ищу подходящий способ поднять конкретную строку до вершины результата запроса.Переупорядочение строк MySQL на основе определенной строки

Какое оптимальное решение для решения этой задачи?

+3

Обычно либо 'ORDER BY' со сложными условиями, либо объединяет два запроса. Каковы условия? – tadman

+0

Если вы не предоставите запрос & | или данные, их трудно ответить. –

+1

'порядок, когда условие = 1 и другое условие = 2, затем 1 else условие 2 end, Field2, Field3, Field4' Таким образом, те, кто соответствует вашим условиям (состояниям), являются 1-й. – xQbert

ответ

2

позволяет предположить ваш специальный ряд имеет поле как SpecialAd

SELECT * 
FROM YourTable 
ORDER BY CASE 
       WHEN `SpecialAd` = true THEN 0 
             ELSE 1 
      END, 
      OtherSortField 

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