SELECT timestamp FROM table WHERE id = '10'
是否有可能得到上面的SELECT返回時間戳'0000-00-00 00:00:00'如果沒有ID爲'10 '在桌子上?MySQL:選擇不同的東西,如果選擇不返回任何行
SELECT timestamp FROM table WHERE id = '10'
是否有可能得到上面的SELECT返回時間戳'0000-00-00 00:00:00'如果沒有ID爲'10 '在桌子上?MySQL:選擇不同的東西,如果選擇不返回任何行
是......
使用If Exist/else語句。你的其他人可以返回時間戳。
如果您使用的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 ...
}
如果你想有一個選擇它,而不是用的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
更好。
Hooray for RIGHT JOIN – Strawberry