系统环境: LNMP+SYMFONY 1.4

因为最近项目的需要,需要用到排序,因为我使用的是doctrine来做数据库查询的.

  1. $reg = Doctrine_Core::getTable('lmsReg'
  2.                 ->createQuery('a'
  3.                 ->groupBy('a.reg_stamp'
  4.                 ->orderBy('a.reg_stamp DESC'
  5.                 ->fetchOne(); 

这个里面我需要对reg_stamp 降序,但是reg_stamp全部都是数字.

这个时候问题出来了.排序方式竟然是9 8 7 6 5 4 3 2 10 1;

正常应该是10 9 8 7 6 5 4 3 2 1;

这个我们必须把reg_stamp转换成数字来进行排序就正常了.

解决办法: 加0,对reg_stamp进行+0操作

  1. $reg = Doctrine_Core::getTable('lmsReg'
  2.                 ->createQuery('a'
  3.                 ->groupBy('a.reg_stamp'
  4.                 ->orderBy('a.reg_stamp+0 DESC'
  5.                 ->fetchOne();