如何在Kohana-ORM中使用BETWEEN子句
我是科哈纳的新手。我使用ORM获取数据 我想构建一个查询,其中有如何在Kohana-ORM中使用BETWEEN子句,kohana,kohana-3,kohana-orm,kohana-db,Kohana,Kohana 3,Kohana Orm,Kohana Db,我是科哈纳的新手。我使用ORM获取数据 我想构建一个查询,其中有BETWEEN子句。如下 SELECT `rooms`.* FROM `rooms` LEFT JOIN `events` ON (`rooms`.`id` = `events`.`room_id`) WHERE `events`.`room_id` IS NULL OR (`events`.`eventstart` NOT BETWEEN 1312210800 AND 1312218000) 为此,我正在做以下工作
BETWEEN
子句。如下
SELECT `rooms`.* FROM `rooms` LEFT JOIN `events` ON (`rooms`.`id` = `events`.`room_id`)
WHERE `events`.`room_id` IS NULL
OR (`events`.`eventstart` NOT BETWEEN 1312210800 AND 1312218000)
为此,我正在做以下工作
$rooms = $room->join('events', 'LEFT')
->on('rooms.id', '=', 'events.room_id')
->where('events.room_id', 'IS', NULL)
->and_where_open()
->or_where('events.eventstart' , 'NOT BETWEEN', $from)
->and_where_close()
->find_all();
但我得到的答案是这样的
SELECT `rooms`.* FROM `rooms` LEFT JOIN `events` ON (`rooms`.`id` = `events`.`room_id`)
WHERE `events`.`room_id` IS NULL AND (`events`.`eventstart` NOT BETWEEN 1312210800)
有人能指出如何使用BETWEEN子句吗?我想你应该使用
或where('events.eventstart','BETWEEN',array($from,$to))代码>
有关Kohana查询生成器的文档可在此处找到->
ORM使用查询生成器。我发现可靠工作的唯一方法是使用DB::expr()
考虑以下几点:
or_where('events.eventstart', 'NOT BETWEEN', DB::expr('1312210800 AND 1312218000'));
或者,您可以将其全部粘贴在变量中:
$range = "{$from} AND {$to}";
or_where('events.eventstart', 'NOT BETWEEN', DB::expr($range));
尝试或_where('events.eventstart','notbetween',数组($from,$to))代码>可能值得在kohana论坛上询问和/或提交功能请求。