【发布时间】:2013-07-03 11:39:40
【问题描述】:
三个字段:
Activity (varchar), Arrival (time), Departure (time)
我正在尝试生成这样的输出表:
Activity Arrival Departure
Travel to Hotel 9:00 -
Depart Hotel for Big Ben - 10:00
Sight-seeing Big Ben 12:00 13:00
- 表示我的表中的 NULL 值。
我目前在我的查询中这样订购:
ISNULL(Activity.arrival), Activity.arrival ASC
在提供到达日期时效果很好。当arrival 是null 时,我会得到这样的表格
Activity Arrival Departure
Travel to Hotel 9:00 -
Sight-seeing Big Ben 12:00 13:00 // problem!
Depart Hotel for Big Ben - 10:00 // should be up one.
我不确定是否可以使用纯 SQL 来实现。
正在执行的查询是:
SELECT `id`, `activity`, `arrival`, `departure` FROM `activities` ORDER BY ISNULL(`arrival`) ASC, `arrival` ASC
我只是在输出:
foreach($r as $k) {
echo $k['activity'] . ' ' . $k['arrival'] . ' ' . $k['departure'];
}
我是否需要在输出时对其进行操作?
感谢您的任何见解。
【问题讨论】:
-
解决此类问题的方法是引入
sortorder列,活动应该按照发生的顺序排列, -
这实际上是一个好点,可能一目了然更容易理解,谢谢。
标签: php mysql sql-order-by