2013-04-17 39 views
0

我希望本週可以看到用戶上傳的圖片。MYSQL本週選擇

這是正確的嗎?

"SELECT * 
FROM images 
WHERE userid = '$userid' 
    AND uploadeddate >= DATEPART(week, uploadeddate) = DATEPART(week, GETDATE()) 
ORDER BY uploadeddate DESC"; 

我得到錯誤。謝謝您的幫助。

+1

標記爲具有'sql-server'日期函數的'mysql'?我的猜測是'mysql',因爲'$ userid'。 – Kermit

+0

您使用的數據庫是?您標記了MySQL,但語法看起來像SQL Server? – Taryn

+0

介意與我們分享錯誤文本? – Quassnoi

回答

1
SELECT * 
FROM images 
WHERE userid = $userid 
     AND uploadeddate >= CURDATE() - INTERVAL WEEKDAY(day) DAY 
     AND uploadeddate < CURDATE() - INTERVAL WEEKDAY(day) DAY + INTERVAL 7 DAY 

創建於(userid, uploadeddate)這個索引快速地工作。

0

以下查詢將返回當前周的記錄。在您的SELECT中指定列列表也是最佳做法。

如果您使用的SQL Server:

SELECT ... WHERE DATEPART(week, uploadeddate) = DATEPART(week, GETDATE()) 

如果你使用MySQL:

SELECT ... WHERE WEEK(uploadeddate) = WEEK(CURDATE())