order_by()对距离范围数据无法正常工作

时间:2014-08-06 14:17:21

标签: php mysql codeigniter

我有像范围内的距离数据,如

5-10,0-5,10-15,

我正在使用此查询按排序顺序获取数据:

$this->db->select("distance_from_mall");
$this->db->from("transport_charges");
$this->db->order_by("distance_from_mall", "asc");
$route =$this->db->get()->result_array();

它给了我

0-5,10-15,5-10而不是0-5,5-10,10-15,

1 个答案:

答案 0 :(得分:1)

因为你的距离是一个字符串,所以引擎ORDER就是一个字符串。

这是此查询的正确答案。

我建议将distance更改为每个transport_charge的最小整数/数字..如果范围不重叠,这将为您提供所需的所有数据。

如果他们这样做;将distance分为两列,range_maxrange_min以及ORDER BY,无论哪个更有意义,或将两个列分开存储:ORDER BY range_min, range_max