2015-01-15 61 views

回答

1

是......

使用If Exist/else语句。你的其他人可以返回时间戳。

0

如果您使用的MySQLi:

<?php 

$result = mysqli_query($conn, "SELECT timestamp FROM table WHERE id = 10"); 

/* determine number of rows result set */ 
$row_cnt = mysqli_num_rows($result); 

if ($row_cnt == 0) { 

    echo '0000-00-00 00:00:00'; 

    //or store as a variable to use else where. 

    $my_result = '0000-00-00 00:00:00'; 

} else { 

    // else if there are results, do something ... 

} 
1

如果你想有一个选择它,而不是用的if-else或PHP /等等,下面的技巧应该工作处理得:

SELECT COALESCE(t1.timestamp,t2.tst_hack) timestamp 
FROM table t1 
RIGHT JOIN (SELECT 10 as id, '0000-00-00 00:00:00' as tst_hack) t2 ON t1.id=t2.id; 

(只注意它是真正的黑客,所以你应该有它一个很好的理由)

[更新]

如果存在匹配的id并且其时间戳为NULL,则COALESCE也会将其覆盖为'0000-00-00 00:00:00'。如果这是一个问题并且保留NULL值很重要,那么IF(t1.id IS NULL, t2.tst_hack, t1.timestamp)COALESCE更好。

+1

Hooray for RIGHT JOIN – Strawberry