mysql中文、英文别名排序问题,order by 关键字详解

 order by 关键字详解:

 
SELECT
intcode    AS 商品编码,
product_title AS 名称,
retailprice AS 零售价,
purchaseprice AS 合同进价
FROM product_detail
WHERE brand='0063飘柔'
AND purchaseprice>10
ORDER BY purchaseprice DESC;
 
desc是降序。升序关键字是ASC,如果不写desc和ASC,默认是升序排列的
 
 
 
 
下面搞一搞中文别名排序:
SELECT
intcode    AS 商品编码,
product_title AS 名称,
retailprice AS 零售价,
purchaseprice AS 合同进价
FROM product_detail
WHERE brand='0063飘柔'
AND purchaseprice>10
ORDER BY '零售价' DESC;
本来想按照中文别名来排序,但是输出竟然是按照默认的升序。看来order by 语句出错了,就不执行了
 
 
 
 
起个英文别名试试:
SELECT
intcode    AS 商品编码,
product_title AS 名称,
retailprice AS tt,
purchaseprice AS 合同进价
FROM product_detail
WHERE brand='0063飘柔'
AND purchaseprice>10
ORDER BY tt DESC;
竟然成功了。而且测试发现tt还不能加单引号。
 
 
 
我靠,想想不对啊,我把中文别名也不加单引号试试。发现是我搞错了:
SELECT
intcode    AS 商品编码,
product_title AS 名称,
retailprice AS 零售价,
purchaseprice AS 合同进价
FROM product_detail
WHERE brand='0063飘柔'
AND purchaseprice>10
ORDER BY 零售价 desc;
ORDER BY 零售价 desc   语句中的零售价是中文,不加单引号,也能排序!!
 
 
小结:(1)mysql对于执行顺序比较靠后的语句,如果出错了就不执行,而且不报错。
            (2)按照查询出来的字段的别名排序也是可以的,不管别名是中文还是英文,只要不加单引号就行。
posted @ 2019-03-16 15:13  JohnTesla  阅读(2665)  评论(0编辑  收藏  举报