DEV Community

n350071🇯🇵
n350071🇯🇵

Posted on • Edited on

1 2

Rails where AND, OR

Take care of difference between 'or' and 'and'.

a = User.where(phone: nil).or(User.where(phone: '')).to_sql
b = User.where(phone: [nil, '']).to_sql
a == b #=> true
a # => "SELECT `users`.* FROM `users` WHERE (`users`.`phone` = '' OR `users`.`phone` IS NULL)"

c = User.where(phone: nil).where(phone: '').to_sql
a == c #=> false
c # => "SELECT `users`.* FROM `users` WHERE `users`.`phone` = '' AND `users`.`phone` IS NULL"
Enter fullscreen mode Exit fullscreen mode

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay