2014-09-04 72 views
0

我有一個表名視頻MySQL數據庫查詢與if條件

表視頻

id name upload_date 

1 one  1408336348 
2 two  1409884215 

現在我要選擇,如果上傳的最後2天之間的視頻,然後是所有的數據也計算或沒有

結果像

id name upload_date new 

1 one  1408336348 no 
2 two  1409884215 yes 

我使用這個查詢,但無法工作

SELECT v.*,(if(from_unixtime(v.upload_date) < NOW() - INTERVAL 2 DAY) then 'no' else 'yes') 
AS new FROM `video` as v 

查詢返回錯誤

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') then 'no' else 'yes') 
AS new FROM `video` as v 
LIMIT 0, 25' at line 1 
+0

什麼是你查詢的回報? – 2014-09-04 19:01:37

+1

什麼意思是「不能工作?」。任何錯誤或錯誤的結果? – Jens 2014-09-04 19:02:08

回答

0

嘗試使用情況

SELECT v.* 
    ,case 
     when (from_unixtime(v.upload_date) < NOW() - INTERVAL 2 DAY) then 'yes' 
     else 'no') 
    end AS new 
FROM `video` as v 
1

這不是在一個MySQL的IF正確的語法。試着這樣說:

SELECT v.*, 
    IF(from_unixtime(v.upload_date) < NOW() - INTERVAL 2 DAY, 'yes', 'no') AS new 
FROM `video` as v 
0

問案聲明:

SELECT v.*, 
    CASE WHEN from_unixtime(v.upload_date) < NOW() - INTERVAL 2 DAY 
     THEN 'Yes' 
     ELSE 'No' 
    END AS new 
FROM `video` 

這是ANSI標準的方式做到這一點的SQL。

+1

@ R.T。複製/意大利麪故障。已經解決了它。 – 2014-09-04 19:04:12

+0

是的,我現在看到編輯:) – 2014-09-04 19:04:38