2015-05-09 110 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