你见过ORDER BY -title DESC这种用法吗?

来源:互联网 发布:监测数据弄虚作假 编辑:程序博客网 时间:2024/04/30 10:18
在查看网站SQL语句时,发现这样一样语句,ORDER BY -title DESC。
第一反应是不是写错了,-title DESC不是应该和title ASC一样吗?

检测了下,两者结果是不一样的。

假定title有:旅游1线,20路,112路,113路

title ASC,是 112路,113路,20路,旅游1线
-title DESC,是 旅游1线,20路,112路,113路
-title ASC,是 113路,112路,20路,旅游1线
title DESC,是 旅游1线,20路,113路,112路

其中-title DESC,是 旅游1线,20路,112路,113路,20路在112路前面。

那么为什么会这样呢?
SELECT title,-title FROM hx_bus WHERE ...
查看到:
title -title   --title
112路 -112   112
113路 -113   113
20路 -20       20
旅游1线 -0    0


原来加了-(负号)后,中文的title转变成数字了,无法转变的就变成了0。
这样ORDER BY -title DESC时,按照数字排序,20路才能排在112路前面,同时112路在113路前。

所以,在某些情况下,还是需要用到ORDER BY -title DESC这种用法的。