如何在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中执行此操作
答案 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'));