Tan_YL
(Tan YL)
1
Hi, i was just wondering if its is possible to put a if statment
inside the find conditions
for example:
grovery_price = model.find(:first, :conditions => [ "if x = ? then y
must = ?", 200, 300]
I have been googling for some time for a solution to this but i just
can't seem to find any.
11175
(-- --)
2
Tyl Tan wrote:
Hi, i was just wondering if its is possible to put a if statment
inside the find conditions
for example:
grovery_price = model.find(:first, :conditions => [ "if x = ? then y
must = ?", 200, 300]
I have been googling for some time for a solution to this but i just
can't seem to find any.
Does
:conditions => ["(x = ? and y = ?) or x <> ?", 200, 300, 200]
work?
11175
(-- --)
3
Or is it just:
:conditions => ["(x = ? and y = ?)", 200, 300]
i.e., do you want the items where x != 200 or not?
Tan_YL
(Tan YL)
4
If x equal 200 then I want the find to check that y is equal to 300 but if x is not equal to 200 there should be no check with y
11175
(-- --)
5
Tyl Tan wrote:
If x equal 200 then I want the find to check that y is equal to 300 but
if x is not equal to 200 there should be no check with y
Well,
:conditions => ["x <> ? or (x = ? and y = ?)", 200, 200, 300]
If SQL short-circuits the logic, that shouldn't check y when x != 200
Tan_YL
(Tan YL)
6
Thanks I'll try it out when I have the time