2017-05-26 14 views
0

これは、世界で最も簡単なことのように思われるが、私は整数を取得しようとしていますがエクトクエリから返さ:Elixir/Ecto/Postgresがクエリから整数を取得しようとしましたが、代わりにcharリストを取得しようとしていますか?

iex(10)> num = Polo.Repo.all(from n in Polo.Account.Number, select: max(n.account)) 
[debug] QUERY OK source="account_numbers" db=3.0ms queue=0.1ms 
SELECT max(a0."account") FROM "account_numbers" AS a0 [] 
[7024184] 

iex(11)> IO.inspect(num) 
[7024184] 
[7024184] 

iex(12)> IO.puts(num) 
** (ArgumentError) argument error 
    (stdlib) :io.put_chars(:standard_io, :unicode, [[7024184], 10]) 

iex(12)> num + 1 
** (ArithmeticError) bad argument in arithmetic expression 
    :erlang.+([7024184], 1) 

正しい番号が実際7024184であるが、いくつかの理由で、そうではありません整数として返されます。それはcharリストのようです。

ご協力いただければ幸いです!

最新エリクサー1.4.4

+0

を、CHARLISTは整数のリストだけです。 –

答えて

0

Repo.allを実行するには、常にリストを返します。整数を選択しているので、整数のリストが返されます。

あなただけの1の値を取得したい場合は、Repo.one使用することができます:エリクサーで

num = Polo.Repo.one(from n in Polo.Account.Number, select: max(n.account)) 
# num should be just the integer `7024184` now 
+0

うわー、とても簡単!迅速な返信ありがとう! – Madasebrof

関連する問題