在MySQL中以数字顺序排序,然后按字母顺序排序

时间:2015-12-02 22:25:31

标签: mysql sql codeigniter sorting

我需要按项目编号的升序排序表。我的表有几行数据,包含一个名为项目编号的列。下面的文字显示了我表格中行的一部分。

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

这是我在codeigniter中的查询:

$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

1 个答案:

答案 0 :(得分:2)

当在算术上下文中使用字符串时,MySQL会执行从字符串到数字的静默转换。

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

order by project + 0, project