我想在两个日期之间拉入所有bday会员 - 无论年份如何......只需要一个月和一天..我得到的结果正确检索,但没有按照我的预期订购......
我需要逐月订购的记录和按升序排列的天数 - 这样一个月内的成员就会按照升序排列。(我按月分组,但不按天分组)
查询:
SELECT *
FROM family_member
WHERE DATE_FORMAT(dob, '%m-%d')
BETWEEN DATE_FORMAT('2013-07-1', '%m-%d')
AND DATE_FORMAT('2013-09-30', '%m-%d')
order by MONTH(dob)
,DAYOFMONTH(dob)
and status='a'
答案 0 :(得分:3)
我认为你需要取出and
中的order by
:
SELECT * FROM family_member
WHERE DATE_FORMAT(dob, '%m-%d') BETWEEN DATE_FORMAT('2013-07-1', '%m-%d') AND DATE_FORMAT('2013-09-30', '%m-%d')
order by MONTH(dob), DAYOFMONTH(dob), status='a'
正如所写,按MONTH(dob)
进行排序,然后是AND
DAYOFMONTH(dob)
和status='a'
或者您已将order by
插入where
子句的中间位置:
SELECT * FROM family_member
WHERE DATE_FORMAT(dob, '%m-%d') BETWEEN DATE_FORMAT('2013-07-1', '%m-%d') AND DATE_FORMAT('2013-09-30', '%m-%d')
and status = 'a'
order by MONTH(dob), DAYOFMONTH(dob)