在MySQL中按十进制/字符串排序

时间:2011-12-12 13:44:41

标签: php mysql

我试图在CakePHP中进行字符串排序,但我犯了一些错误。我喜欢C.110,C.100.1,...,C.100.8等字符串。

当我尝试使用时订购:

ORDER BY CAST(plane_accounts.code AS DECIMAL(10,5))

MySQL给我一些回复:

C.110
C.110.8
C.110.1
C.100.2

有人知道如何解决这个问题吗?感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

没有必要强制转换它,code字段上的简单ASC排序应该可以正常工作:

$this->PlaneAccount->find('all', array(
    'order' => array(
        'PlaneAccount.code' => 'ASC'
    )
));

或者以普通的MySQL语法:

SELECT `code` FROM `plane_accounts` ORDER BY `code` ASC;