我正在尝试使用查询来提取列,其中'grad_year'是四年之一(4个OR语句),但我希望首先显示指定年份的条目。这是我的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
答案 0 :(得分:2)
将查询更改为:
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
项目,然后按意外顺序显示所有其他项目。
答案 1 :(得分:0)
这可能会有所帮助
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