如何在ecto中搜索数组长度

时间:2017-06-28 18:11:29

标签: elixir 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?

1 个答案:

答案 0 :(得分:1)

使用PostgreSQL,您可以使用片段:

来使用array_length函数
from(u in User, where: fragment("array_length(?, 1)", u.loved_numbers) == 2)

1用于计算维度,对于一维数组,该值应为1。)

据我所知,MySQL does not support arrays