2011-10-18 20 views
0

我在查詢時遇到了一些麻煩。我需要顯示按照「編輯」部分的順序拖放的圖像,然後如果他們有要顯示的順序,則會首先顯示編輯圖像,但如果未在該部分中排序,則只會默認並拉已經訂購的正規圖像(這可能不是編輯類型的圖像,但是如果沒有其他可用的圖像,則是優選的圖像)。我現在有低於查詢,但不拉社論排名第一的圖像而是「ordered_by」似乎優先Mysql:從表中拉出

SELECT i.img_name, a.artist_path_name, a.artist_dir, a.artist_name, ck.catKey_id   
FROM images AS i JOIN artists AS a USING (artist_id) 
JOIN img_cat_table AS imc USING (img_id) 
JOIN catkeys AS ck USING (catKey_id) 
WHERE site = 'editorial' AND editorial_order = 1 OR ordered_by = 1 GROUP BY artist_name ORDER BY ed_banner 

它可能是一些愚蠢的,我很想念 - 任何和所有幫助表示讚賞

回答

1

嘗試類似:

... 
ORDER BY CASE WHEN site = 'editorial' AND editorial_order = 1 THEN 1 ELSE 2 END, 
     ed_banner 
+0

感謝您的幫助喬 - –

0

或以更簡單的方式

ORDER BY (site = 'editorial' AND editorial_order = 1) DESC, ed_banner 
同樣的想法

它只是使用FALSE,TRUE的順序。

您應該從WHERE子句中刪除相應的條件。