2013-12-18 49 views
0

我有一個表,記錄創建日期(時間戳存儲爲一個INT)的數據文件的版本。 1版本每月最多上傳一次。動態創建一個匹配的月份在MySQL的列表,其中條款

在下面的查詢我試圖獲取這是在一月,四月,七月和十月上傳過任何版本的導入時間

> SELECT import_time FROM importlog WHERE 
> DATE_FORMAT(FROM_UNIXTIME(import_time), '%m') = 1 OR 
> REPEAT(DATE_FORMAT(FROM_UNIXTIME(import_time), '%m') = 1+3,3)) 

目前,這是因爲我看到了重複返回僅一月和四月只是做了3次相同的條件。 我認爲需要做的是1 + 3語句incemental重複的語句時每次都:

1+3; 
1+6; 
1+9; 

我需要這樣一個動態的方法,因爲雖然我已經將其描述爲1月,在現實中,這日期也可以基於用戶而變化。

由於我一直回到auto_increment創建INSERT查詢,所以我的研究並不是非常有成果。任何見解都會受到歡迎。

更新 我能夠通過創建爲允許所有月份的字符串一個單獨的MySQL查詢做到這一點。 $個月=(1,4,7,10) DATE_FORMAT(FROM_UNIXTIME(import_time), '%M')在$個月

所以這是快速和骯髒的解決方案,爲我自己的學習,我不知道更復雜的解決方案是可能的。

親切的問候, 卡爾

回答

0

爲什麼你不只是做?

SELECT import_time 
FROM importlog 
WHERE DATE_FORMAT(FROM_UNIXTIME(import_time), '%m') in ('01', '04', '07', '10'); 
+0

如果靜態的月份工作正常。然而,這些可能是動態的,即取決於用戶2,5,8,11。非常感謝 – cjrogers

相關問題