三个领域:
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
在提供抵达日期时效果很好.当到达为空时,我最终得到一个这样的表
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'];
}
我是否需要在输出时操纵它?
感谢您的任何见解.
解决方法:
您可以使用COALESCE()返回第一个非空值.
通过COALESCE订购(Activity.arrival,Activity.departure)