2015-05-09 113 views
0

我一直在檢查這個問題的論壇很多,但因爲我只是一個初學者,我找不到一個答案,我可以用我的代碼工作,我的知識。這就是我想要解決的問題:mysql語句中的ORDER BY CASE

我的店裏有很多產品。有4種不同的類型。

  1. PRODUCT_NAME與 「AA-」
  2. PRODUCT_NAME與 「BB-」 開始
  3. PRODUCT_NAME與 「CC-」
  4. PRODUCT_NAME以 「東菱」

開始啓動開始沒有當我將產品展示給觀衆時,我想使用ORDER BY ASC。

但是對於產品「CC-」和「DF-」,我希望它被訂購DESC。

如果我的PRODUCT_NAME開頭「BB-」,應當按價格排序(也稱爲SELECT語句)

我意識到,我應該使用CASE這一點。但我不知道如何。

回答

0

我想你也可以去UNION在這種情況下很容易,就像這樣:

select t1.product_name Name, t1.product_price Price from 

(select product_name, product_price from shop 
    where product_name like 'cc%' or product_name like 'de%' 
    order by product_name desc) t1 

union 

select t2.* from 
(select product_name, product_price from shop 
    where product_name like 'bb%' 
    order by product_price) t2 

union 

select t3.* from 
(select product_name, product_price from shop 
    where (product_name not like 'cc%') and (product_name not like 'de%') 
    and (product_name not like 'bb%') 
    order by product_name, product_price) t3 ; 
+0

謝謝你 - 我會嘗試, – Bassmc