2017-05-26 51 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總是返回一個列表。既然你選擇了一個整數,你會得到一個整數列表。

如果你想只有一個值,你可以使用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

相關問題