Ci sono diverse soluzioni possibili a seconda se siete interessati a questo caso specifico o in un approccio più ampio.
In questo caso specifico, poiché rows
è una lista con una singola tupla con un singolo valore, è possibile sfruttare la corrispondenza del modello per estrarre il valore.
{:selected, _, [{count}]} = {:selected, ['COUNT'], [{'182'}]}
Da questo punto count
corrisponderà '182'
. Tuttavia, si ricorda che '182'
è diverso da quello "182"
"182" == '182'
false
Come spiegato nella documentazione Elixir, '182'
is a char-list mentre "182"
è una stringa. Pertanto non è possibile utilizzare direttamente String.to_integer
in quanto non riuscirà.
String.to_integer(count)
** (ArgumentError) argument error
:erlang.binary_to_integer('182')
Innanzitutto è necessario utilizzare List.to_integer(count)
oppure convertirlo in una stringa, poi gettati in un numero intero.
List.to_integer(count)
182
String.to_integer(to_string(count))
182
Questa soluzione può non essere applicabile direttamente se il tupla contiene più di un valore (che significa la query restituisce più di un valore come risultato). Tuttavia è un punto di partenza che puoi adattare alle tue esigenze.
fonte
2015-10-05 23:11:43
Non so se funzionerebbe per quello che ti serve ma potresti anche voler dare un'occhiata a Ecto: https://github.com/elixir-lang/ecto –