нужна помощь в определении приоритетов вывода с помощью запроса SQL - PullRequest
0 голосов
/ 19 июля 2011

Я пытаюсь получить столбцы с запросом, где 'grad_year' - это один из четырех лет (4 оператора ИЛИ), но я хочу, чтобы записи определенного года отображались первыми. Это SQL у меня есть. В этом примере я хочу получить записи из 2011, 2012, 2013 и 2014 годов. Как я могу получить записи 2012 года, например, для отображения первыми? Остальная часть заказа не имеет значения. Спасибо!

SELECT       user_meta.grad_year,
             school_data.school
FROM         user_meta
  LEFT JOIN  school_data
  ON         user_meta.school_id = school_data.id
WHERE        school_id = 2
  AND        user_id != 102
  AND       (user_meta.grad_year = 2011
    OR       user_meta.grad_year = 2012
    OR       user_meta.grad_year = 2013
    OR       user_meta.grad_year = 2014)
LIMIT        0, 15

Ответы [ 2 ]

2 голосов
/ 19 июля 2011

Измените запрос на:

SELECT       user_meta.grad_year,
             school_data.school
FROM         user_meta
  LEFT JOIN  school_data
  ON         user_meta.school_id = school_data.id
WHERE        school_id = 2
  AND        user_id!=102
  AND       (user_meta.grad_year BETWEEN 2011 and 2014)
ORDER BY    (user_meta.grad_year = 2012) DESC
LIMIT        0, 15

Сначала будут показаны 2012 элементы, а затем все остальные элементы в случайном порядке

0 голосов
/ 19 июля 2011

это может помочь

ORDER BY 
 CASE 
  WHEN user_meta.grad_year = 2012 THEN 1 
  WHEN user_meta.grad_year = 2011 THEN 2 
  WHEN user_meta.grad_year = 2013 THEN 3 
  ELSE NULL 
 end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...