首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kohana 3 ORM:高级查询、效率

Kohana 3 ORM:高级查询、效率
EN

Stack Overflow用户
提问于 2010-11-15 07:49:52
回答 1查看 2.2K关注 0票数 4

所以我们都知道Kohana 3的文档绝对是可怕的。那么,我如何构造下面的查询,其中我有一个"Player“和"Dragon”模型?

代码语言:javascript
复制
SELECT * FROM `dragons` JOIN `players` ON (`dragons`.`player_id` = `players`.`player_id`) WHERE `uid` IN (1,2,3) ORDER BY `dragons`.`id` ASC

我可以使用ORM::factory('dragon')->join("players")->on("dragons.player_id", "=", "players.player_id")来连接部分,但是我不能使用in子句。在Kohana3的ORM中没有in函数。我尝试过where函数,但它在第三个参数两边加了引号,因此我的it列表变成了一个字符串,查询也变得无效。那么我能做什么呢?我不知道如何在ORM加载查询中添加自定义的SQL代码。再说一次,因为文档不存在。

我现在能想到的唯一方法就是加载所有合适的玩家,循环通过它们,并获取它们的龙。但这看起来真的很愚蠢--比必要的查询要多得多。我以前有过这样的感觉,使用ORM会使查询端的效率变得非常低,以使其更容易编码。这是真的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-15 07:55:46

ORM可以产生一些不太理想的查询-但它也加快了开发时间,并给了你一个抽象(有些人觉得他们再也不应该手工编写SQL了)。

大多数时候,我更喜欢在复杂的web应用程序中使用SQL。

然而,通过使用Kohana3的ORM,你想要的是可能的。

来自The Pixel Developer

代码语言:javascript
复制
where('field', 'IN', range(1, 3));

这有一个优点,那就是没有循环。:-)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4180435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档