gpt4 book ai didi

elixir - 从记录集中获取单条记录

转载 作者:行者123 更新时间:2023-12-04 12:47:12 25 4
gpt4 key购买 nike

简单请求:

    a1 = where(MyModel, [x], is_nil(x.some_foreign_id)) |> Repo.one()

异常(exception):

** (exit) an exception was raised:                                
** (Ecto.MultipleResultsError) expected at most one result but got 6 in query:

是的,有一些记录,没关系,但我打算拿第一个。为什么会出现异常以及如何解决?

最佳答案

Why the exception

Repo.one 总是返回 nil 或一条记录,如果程序员自己将 limit 添加到查询而不是从数据库中获取更多记录会更好然后抛出所有,只剩下一个。

how to fix it?

您可以使用limit(1):

a1 = where(MyModel, [x], is_nil(x.some_foreign_id)) |> limit(1) |> Repo.one()

请注意,如果没有 order,返回的记录在大多数数据库中通常是未定义的。您可以通过 id 排序以获得具有最低 id 的记录:

a1 = where(MyModel, [x], is_nil(x.some_foreign_id)) |> order_by(:id) |> limit(1) |> Repo.one()

关于elixir - 从记录集中获取单条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43786776/

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