如何在codeigniter中正确order_by(time)

时间:2012-03-05 08:19:54

标签: codeigniter

如何在codeigniter中执行order_by部分?

SELECT <field> FROM <table> ORDER BY STR_TO_DATE( <field>,  '%H:%i' ) DESC LIMIT 0 , 30

尝试了这一点,但它需要“'%H:%i')”作为字段名称。

$this->db->order_by("STR_TO_DATE(".$field.", '%H:%i')", $order);

该字段是varchar,我发布的查询返回我想要的结果,但我不知道如何在codeigniter中执行此操作

1 个答案:

答案 0 :(得分:2)

我认为你不能在2.1.0版的CodeIgniter中做到这一点。正如Madmartigan所说,逗号触发CI将错误的部分包装在反引号中,从而给出了mysql错误。我认为没有必要深入研究order_by函数的活动记录,以找到解决方法,而不是真正的解决方案。我检查了上游,显然,他们有interesting的东西,你可能想留意什么时候释放。

我没有花更多的时间在活动记录order_by中找到解决方法,但求助于这种似乎工作正常的替代方案。考虑以下几点?

$sql = "SELECT <field> FROM <table> ORDER BY STR_TO_DATE(?, '%H:%i') desc LIMIT 0, 30";
$this->db->query($sql, array('19:20'));