如何选择以及在何处使用Kohana ORM?

时间:2013-11-17 12:08:13

标签: php mysql orm kohana

我试图用Kohana ORM做这个,但不知道该怎么做:

SELECT t.name
FROM t
WHERE IF(t.s1_id = 1, t.s2_id IN (2,3,4), t.s1_id IN (2,3,4))

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT t.name FROM t WHERE (t.s1_id = 1 and t.s2_id IN (2,3,4) ) or ( t.s1_id IN (2,3,4) )

答案 1 :(得分:1)

我自己没有使用过这个,但是随着floww的转换,这应该可以解决这个问题

$model = ORM::factory('t')->and_where_open()
    ->where('s1_id', '=', '1')
    ->where('s2_id', 'IN', array(2,3,4))
    ->and_where_close()
    ->or_where('s1_id', 'IN', array(2, 3, 4));

如果您希望获得一个结果,请立即使用$model->find(),然后您可以通过$model->name访问该名称。

如果您希望获得多个结果,请使用$model->find_all()并对其进行迭代,获取所有->name s


正如您在API browser中所看到的,ORM不支持IF语句。如果您不想要像发布的那样的硬编码解决方案,我认为您必须自己添加此功能。