Kohana ORM - mysql条件里面的order_by()方法

时间:2013-07-12 14:46:31

标签: orm sql-order-by kohana

今天我有一个特定的“问题”要用Kohana(3.3)orm order_by方法来解决。 我需要重写order_by()方法来接受类似的东西:

->order_by("IF(ISNULL(foo) OR foo = '', 1, 0), foo", "ASC")

(此条件将所有空值放在查询结果的末尾)。 但是,orm用“`”来逃避查询,然后就无法工作了。

ORDER BY `IF(ISNULL(foo) OR foo = "", 1, 0), foo` ASC

我可以使用DB :: query()挂载此查询,但我需要在我的系统上的所有order_by查询中使用该条件。

1 个答案:

答案 0 :(得分:2)

尝试DB :: expr(),它的工作

->order_by(DB::expr("IF(ISNULL(foo) OR foo = '', 1, 0), foo"), "ASC")