MySQL正在排除除一个以外的所有行

时间:2015-12-03 21:29:54

标签: php mysql sorting sql-order-by

我正在尝试按升序从数据库中检索项目编号。

行看起来像这样:

-- 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 + 0, Project');

表格的一部分输出:

enter image description here

我的问题是,为什么127卡在中间而不是顶部?我认为它与1270相同,只是没有追加0,但我不确定。任何人都可以帮我解决问题吗?

2 个答案:

答案 0 :(得分:2)

因为您的数据类型是字符串并按字母顺序排序。

使用order_by('cast(Project as UNSIGNED), Project');

答案 1 :(得分:0)

您可以使用php中的natsort()函数。

$array = $result_from_query;

$sorted_array = natsort($array);

现在只返回已排序的数组。