SELECT timestamp FROM table WHERE id = '10'
是否可以使上面的SELECT返回时间戳00:00:00'如果没有' 10'在桌子上?
答案 0 :(得分:1)
...是
使用If Exist / else语句。你的其他人可以返回时间戳。
答案 1 :(得分:1)
如果你想选择它,而不是用if-else或php / etc处理它,下面的技巧应该有效:
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
。
答案 2 :(得分: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 ...
}