siddhant3030

siddhant3030

Hi,

I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw queries in phoenix. So to understand

I have created a user schema that inserts an email in a database table.

So created the changeset the like this

def changeset(user, attrs) do
user
|> cast(attrs, [:email, :password])
end

Now I have a create function that I’m using in my model. So the model will basically talk to db.

def create_user(attrs \\ %{}) do
    %User{}
    |> User.changeset(attrs)
    |> Repo.insert()
end

I have inserted an email in my database. using this
iex(1) > user = User.changeset(%User{}, %{email: “”, password: “”})

Now what I want is to find that user by his email address.
Also If I wanted to fetch through id. I would just do this

def get_user!(id), do: Repo.get!(User, id)

But what if I want to write a raw query? How do I do that?

First 10 of 20 Posts Switch mode

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

The best place to start is always the docs. Hint: it’s a function inside this module Ecto.Repo — Ecto v3.14.0

kokolegorille

kokolegorille

You might also have a look at…

…for raw queries

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Ah yeah, I’m realizing my post wasn’t super helpful because query! isn’t actually in the Repo docs :grimacing:, it’s just added inside repos that actually use SQL adapters. That’s unfortunate.

siddhant3030

siddhant3030 OP

Thanks. This is helpful

al2o3cr

al2o3cr

FWIW, you can do this with Repo.get_by(User, email: email_to_find).

lucaong

lucaong

In case you are exercising raw SQL for learning, you can also directly use the psql command line client for Postgres (assuming that is your database of choice), and directly type SQL in the console.

siddhant3030

siddhant3030 OP

Thanks

siddhant3030

siddhant3030 OP

Can anyone show me some project where sql raw
query is being used heavily. Not ecto queries

siddhant3030

siddhant3030 OP

Hi @kokolegorille

I’m confused about this. Because the database I’m querying is in postgres. But I want to write a raw sql query. Now phoenix comes with Postgres by default. So should I move my table to SQL Database in order to use raw queries ?

sribe

sribe

That makes no sense–if your table is not in a SQL database you can’t query with raw queries. I suspect you mean something else, but I can’t figure out what you’re asking…

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
jonnycharles
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
silverdr
Using Phoenix.LiveView.TagEngine as an EEx.Engine is deprecated! To compile HEEx, use Phoenix.LiveView.TagEngine.compile/2 instead. Sta...
New
dli
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app? Looking for hints regarding: Addi...
New
bottlenecked
Hi all, I wanted to ask how the community is dealing with post-release steps. Today we have Ecto migrations, which make sure that the db...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New

We're in Beta

About us Mission Statement