首页 › 程序设计 › php

mysql中order by 后面的字段被加上- 负号是什么意思

泡在网上的日子 / 文 发表于2012-04-16 12:04 次阅读 mysql

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

在查看网站SQL语句时,发现这样一样语句,ORDER BY -title DESC。
第一反应是不是写错了那个-号是什么意思?

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

假定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
112路 -112
113路 -113
20路 -20
旅游1线 -0

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

所以,在某些情况下,还是需要用到ORDER BY -title DESC这种用法的。
收藏 赞 (2) 踩 (0)
上一篇:比file_get_contents稳定的curl_get_contents函数
/*curl_get_contents函数比file_get_contents稳定的多!$timeout为超时时间,单位是秒,默认为1s。*/ function curl_get_contents($url,$timeout=1) { $curlHandle = curl_init(); curl_setopt( $curlHandle , CURLOPT_URL, $url ); curl_setopt( $curlHandl
下一篇:警告: 网页已经过期"的解决方法
此提示出现在一个POST提交的页面,点到其它页面后,再返回时,IE就会显示这个提示。以前也有碰到过好多次,不过都没太在意,今天化时间了解了下,原来是session在作怪。 在通过IE的后退按钮或者网页中的history.go(-1)时,我们看到的将是缓存页,但使用了sess