gpt4 book ai didi

mysql - 导轨 : ActiveRecord - Custom SQL

转载 作者:可可西里 更新时间:2023-11-01 07:36:01 27 4
gpt4 key购买 nike

使用 ActiveRecord 执行以下 SQL 的最佳方法是什么:

SELECT parent.*
FROM sections AS node, sections AS parent
WHERE node.left BETWEEN parent.left AND parent.right
ORDER BY parent.left DESC
LIMIT 1

我知道可以使用 .limit()、.where() 和 .order() 但您如何处理“来自”?还是将所有操作作为一条语句执行会更好?

感谢您的帮助。

最佳答案

在您的应用程序中使用 SQL 没有任何问题,只要您可以验证它是否正常工作并且不会让您遭受注入(inject)攻击。由于此语句按原样执行,因此您在这方面没问题。

ActiveRecord::Base.connection 提供了一种执行任意查询并以各种格式检索结果的方法。 select_allselect_rows 可能是您要查找的内容。

AREL 查询生成器并不总是像我们希望的那样聪明,所以当有疑问时,请使用最简单的表达形式。在您的情况下,它似乎是那段 SQL。

要使用 AREL 重写它,您必须使用 join 方法将其链接回自身。

关于mysql - 导轨 : ActiveRecord - Custom SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703760/

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