在查看网站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这种用法的。
第一反应是不是写错了,-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这种用法的。