gpt4 book ai didi

php - Kohana 3 ORM : advanced queries, 效率

转载 作者:可可西里 更新时间:2023-10-31 22:48:42 26 4
gpt4 key购买 nike

所以我们都知道 Kohana 3 的文档非常糟糕。那么我如何构造以下查询,其中我有一个“Player”和“Dragon”模型?

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 子句。 Kohana 3 的 ORM 中没有 in 函数。我尝试了 where 函数,但它在第三个参数周围加上了引号,所以我的 ID 列表变成了一个字符串,查询变得无效。那我该怎么办?我不知道如何将自定义的 SQL 位添加到我的 ORM 加载查询中。同样,因为文档不存在。

我现在能想到的唯一方法就是加载所有合适的玩家,循环遍历他们,并获取他们的龙。但这看起来真的很愚蠢——比必要的查询多得多。我以前有过这样的感觉,使用 ORM 会使查询端的效率低得可怕,以便使编码稍微容易一些。这是真的吗?

最佳答案

ORM 可以生成一些不太理想的查询 - 但它也加快了开发时间并为您提供了抽象(有些人认为他们永远不必再手动编写 SQL)。

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

但是,话虽如此,使用 Kohana 3 的 ORM 可以实现您想要的。


来自 The Pixel Developer .

where('field', 'IN', range(1, 3));

这样做的好处是没有循环。 :-)

关于php - Kohana 3 ORM : advanced queries, 效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com