我網站要求的產品在過去3個月內首先顯示任何產品(從最近開始),然後其餘alphbeticaly。目前該網站是用類編寫的,目前產品按添加日期排序。爲了儘量減少工作量,我想知道是否可以在一個SQL查詢中完成上述操作?我認爲這將需要2個單獨的查詢,但我不是SQL的專家,所以想知道這是否可以完成?最近3個月首次訂購,然後按字母順序排列
問候
菲爾
編輯
SELECT pr.id, pr.name AS prod_name, pr.eye_size, pr.bridge_size, pr.opt_size, pr.price, pr.range_id, pr.date_added, ra.name AS range_name
FROM oa_product AS pr, oa_brand AS br, oa_range AS ra
WHERE pr.status = 'Launched'
AND pr.brand_id = br.id
AND br.filename = 'karenmillen'
AND pr.status = 'Launched'
AND pr.range_id = ra.id
AND br.status = 'Active'
ORDER BY
CASE WHEN DATEDIFF('m', GETDATE(
), date_added) <3
THEN date_added
ELSE NULL , prod_name
LIMIT 0 , 6
得到錯誤MySQL服務器版本正確的語法使用近'DATE_ADDED)< 3 THEN DATE_ADDED ELSE NULL,PROD_NAME LIMIT 0 ,第11行6'
任何人都知道爲什麼?
我覺得自己很蠢。我在閱讀並錯誤理解你的問題後添加了一條評論。我不知道這是否可能。但即使是這樣,使用兩種不同的查詢代碼將更容易閱讀嗎? – 2011-12-22 08:42:06
對於兩個單獨的查詢,它可能也會更快,尤其是如果您從不需要顯示「其餘」(因爲它只從第4頁開始)。 – Thilo 2011-12-22 08:43:49