代码之家  ›  专栏  ›  技术社区  ›  DNB5brims

我可以按函数定制sql订单吗?

  •  1
  • DNB5brims  · 技术社区  · 14 年前

    我使用的是MySQL,我查看了一些SQL教程,我看到这是一个调用 ORDER BY ,通常 订购人 一列,带有 AESC 或 DESC 。但是这可能吗 ORDER 数据通过不同的排序算法?

    例如,我的DB中有以下值:

    `id`,`name`,`notice_day`
    

    我愿意 sort 先是今天的那一天,然后是临近今天的那天,再到明天。。。。巴巴巴,在整理完今天、未来、昨天和迄今为止的一天之后。。。。这是一个例子,今天的assame是 1/1/2012

    `1`, `peter`, `1/1/2012`
    `2`, `tom`, `31/12/2011`
    `3`, `mary`, `1/2/2012`
    `4`, `steve`, `1/1/2011`
    `5`, `bill`, `1/4/2012`
    

    我想要的排序顺序如下:

    `1`, `peter`, `1/1/2012`
    
    `3`, `mary`, `1/2/2012`
    
    `5`, `bill`, `1/4/2012`
    
    `2`, `tom`, `31/12/2011`
    
    `4`, `steve`, `1/1/2011`
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   mikeb    14 年前

    如果notice_day是今天还是将来,那么升序,如果notice-day是过去,那么降序?可以做一些类似的事情:

    select * from my_table order by if(notice_day >= date(now()), notice_day, 9999) asc, notice_day desc

        2
  •  0
  •   Alexander Wigmore    14 年前
    SELECT * FROM ##### ORDER BY CONVERT(DateTime, EventDate,101)  DESC
    

    mySQL不是我的强项,但我认为以上内容应该有效。