日期:2014-05-16  浏览次数:20673 次

mysql order by 失效了?
我的表是地址和ip组成,都是char型的,这个表是我用其他表做成的,我想用order by 查看地址多少分布,我用的语句是

 select host,ip from a order by host desc limit 200;
可是出来的结果却不是按从多到少的顺序来的,很是混乱,我就搞不清楚了这是怎么了?怎么失效了吗,可是有些其他表没问题啊?
如图
+-------------------------------------+------------------+
| host                                | ip               |
+-------------------------------------+------------------+
| http://yximg.mop.com                | 60.29.242.112
   |
| http://y3.ifengimg.com              | 121.194.1.117
   |
| http://y3.ifengimg.com              | 58.205.224.142
  |
| http://y3.ifengimg.com              | 113.57.252.238
  |
| http://y3.ifengimg.com              | 59.175.130.246
  |
| http://y3.ifengimg.com              | 59.175.130.53
   |
| http://y2.ifengimg.com              | 59.175.130.106
  |
| http://y0.ifengimg.com              | 59.173.15.238
   |
| http://y0.ifengimg.com              | 59.175.131.159
  |
| http://y0.ifengimg.com              | 59.175.131.238
  |
| http://y0.ifengimg.com              | 219.139.25.81
   |

------解决方案--------------------
从多到少排序,在sql中对host进行分组统计数量,然后按数排序。
SELECT host, count(ip) n FROM table1 GROUP BY(host) ORDER BY n desc