如何在ecto中搜索数组长度
How to search for an array length in ecto
假设我有一个模式
defmodule User do
use MyApp.Web, :model
schema "users" do
field :loved_numbers, {:array, :integer}
end
end
我如何使用 Ecto.Query
搜索正好有 2 loved_numbers
的所有用户?
此查询在 PostgreSQL 和 MySQL 中都有效吗?
在 PostgreSQL 中,您可以使用 array_length
使用片段的函数:
from(u in User, where: fragment("array_length(?, 1)", u.loved_numbers) == 2)
(1
是要统计的维度,一维数组应该是1
)
假设我有一个模式
defmodule User do
use MyApp.Web, :model
schema "users" do
field :loved_numbers, {:array, :integer}
end
end
我如何使用 Ecto.Query
搜索正好有 2 loved_numbers
的所有用户?
此查询在 PostgreSQL 和 MySQL 中都有效吗?
在 PostgreSQL 中,您可以使用 array_length
使用片段的函数:
from(u in User, where: fragment("array_length(?, 1)", u.loved_numbers) == 2)
(1
是要统计的维度,一维数组应该是1
)