【问题标题】:Can i make my customised sql order by function?我可以按功能对我的自定义 sql 进行排序吗?
【发布时间】:2012-08-04 00:41:47
【问题描述】:

我正在使用 MySQL,并且我查看了一些 SQL 教程,我看到这是一个名为 ORDER BY 的语句,通常是 ORDER BY 一个列,带有 AESCDESC。但这是否可以通过不同的排序算法来ORDER 数据?

例如,我的数据库中有跟随值:

`id`,`name`,`notice_day`

我想sort首先是今天,然后是靠近今天,然后是明天....bababa,在整理完今天,未来,昨天和到目前为止的一天之后....这里是例子,今天是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`

【问题讨论】:

标签: mysql sql-order-by


【解决方案1】:

如果notice_day 是今天或将来,那么升序,如果notice_day 是过去,降序?可以做类似的事情:

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

【讨论】:

    【解决方案2】:
    SELECT * FROM ##### ORDER BY CONVERT(DateTime, EventDate,101)  DESC
    

    mySQL 不是我的强项,但我相信上述方法应该可行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-17
      • 2018-08-26
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多