3

感谢 Kohana 出色的文档,我不得不求助于 SO。;)

希望这真的很简单:我正在尝试收集属于某一组 ID 的所有故事。我的代码如下:

$story_ids = '(12,56,99,213,319)';
$stories = ORM::factory('story')->where('id', 'IN', $story_ids)->find_all();

然而,这显然是行不通的。我收到一个 MySQL 错误,因为单引号被放在$story_ids查询中的字符串周围。

编辑:我也尝试过$story_ids作为数组传递,但后来我得到一个“500 Internal Server Error”

有可能做我要求的吗?

提前致谢。

4

2 回答 2

8

将 $story_ids 作为数组传递应该可以工作。

$story_ids = array(12,56,99,213,319);
$stories = ORM::factory('story')->where('id', 'IN', $story_ids)->find_all();

你用的是什么 Kohana 版本?

于 2011-05-01T02:56:52.010 回答
6

您是否忘记了->select()

此外,这里列出了两种使用“IN”关键字的方法:

ORM::factory('table1')->select('mls_id')->where('mls_id', 'NOT IN', DB::Select('mls_id')->from('table2'))->find_all();
ORM::factory('table1')->select('mls_id')->where('mls_id', 'NOT IN', DB::Expr('(SELECT mls_id FROM table2)'))->find_all();

我通常使用 DB::Expr 方法来处理你正在做的事情。

于 2011-04-13T00:30:07.917 回答