2015-12-02 192 views
1

我需要按照项目编号的升序对表进行排序。我的表有几行数据,其中包含一个名为项目编号的列。下面的文本显示了我的表中的一部分行。以数字顺序订购,然后在MySQL中按字母顺序排序

-- project number -- 
     1199.7 
     1053.2 
     1020 
     1023-D 
     1023-C 
     1023-B 
     50 
     34.3T 
     870-W 

这是我在笨查询:

$this->db->select('Project'); 
$this->db->from('`active_projects`'); 
$this->db->order_by('Project'); 

Project是有问题的列。任何人都可以帮助我修改我的查询,以便按照数字排序并按字母顺序升序排列吗?

换句话说,正确的排序应该是这样的:

-- project number -- 
     50 
     34.3T 
     870-W 
     1020 
     1023-B 
     1023-C 
     1023-D 
     1053.2 
     1199.7 

回答

2

的MySQL确实从字符串到数字,当一个字符串是在运算环境中使用无提示转换。

这对您想要做的事非常方便。你可以这样做:

order by project + 0, project