In my controller neighborMatches I have an array of ids: neighborMatches = neighborMatches.map!{|n| n.id} I want to find all the properties that match some conditions, and is also in this list of ids: @properties = Property.find(:all, :conditions => ["(NO_BEDROOMS > ? AND NO_FULL_BATHS > ? AND SQUARE_FEET > ? AND LIST_PRICE > ? AND LIST_PRICE < ? AND id IN ?)", beds, baths, sqft, priceLow, priceHigh, neighborMatches] I get an invalid SQL error: Mysql::Error: #42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''3,33,41,187,432,497,533,537,558,561,564,245,274,365,474,534,536,577,4,18,235,346'' at line 1: SELECT * FROM properties WHERE ((NO_BEDROOMS > ''1'' AND NO_FULL_BATHS > ''1'' AND SQUARE_FEET > ''500'' AND LIST_PRICE > ''0'' AND LIST_PRICE < ''99999999'' AND id IN 3,33,41,187,432,497,533,537,558,561,564,245,274,365,474,534,536,577,4,18,235,346,396,439,509,66,468)) Can anyone spot the SQL syntax error? Thanks in advance!! LAB --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I believe the IN clause needs parentheses: AND id IN (3,33,41,187) Tiago Macedo LAB wrote:> In my controller neighborMatches I have an array of ids: > > neighborMatches = neighborMatches.map!{|n| n.id} > > I want to find all the properties that match some conditions, and is > also in this list of ids: > > @properties = Property.find(:all, :conditions => ["(NO_BEDROOMS > ? > AND NO_FULL_BATHS > ? AND SQUARE_FEET > ? AND LIST_PRICE > ? AND > LIST_PRICE < ? AND id IN ?)", beds, baths, sqft, priceLow, priceHigh, > neighborMatches] > > I get an invalid SQL error: Mysql::Error: #42000You have an error in > your SQL syntax; check the manual that corresponds to your MySQL > server version for the right syntax to use near > ''3,33,41,187,432,497,533,537,558,561,564,245,274,365,474,534,536,577,4,18,235,346'' > at line 1: SELECT * FROM properties WHERE ((NO_BEDROOMS > ''1'' AND > NO_FULL_BATHS > ''1'' AND SQUARE_FEET > ''500'' AND LIST_PRICE > ''0'' AND > LIST_PRICE < ''99999999'' AND id IN > 3,33,41,187,432,497,533,537,558,561,564,245,274,365,474,534,536,577,4,18,235,346,396,439,509,66,468)) > > Can anyone spot the SQL syntax error? Thanks in advance!! > > LAB > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
IN (value1/,/value2,..) LAB wrote:> In my controller neighborMatches I have an array of ids: > > neighborMatches = neighborMatches.map!{|n| n.id} > > I want to find all the properties that match some conditions, and is > also in this list of ids: > > @properties = Property.find(:all, :conditions => ["(NO_BEDROOMS > ? > AND NO_FULL_BATHS > ? AND SQUARE_FEET > ? AND LIST_PRICE > ? AND > LIST_PRICE < ? AND id IN ?)", beds, baths, sqft, priceLow, priceHigh, > neighborMatches] > > I get an invalid SQL error: Mysql::Error: #42000You have an error in > your SQL syntax; check the manual that corresponds to your MySQL > server version for the right syntax to use near > ''3,33,41,187,432,497,533,537,558,561,564,245,274,365,474,534,536,577,4,18,235,346'' > at line 1: SELECT * FROM properties WHERE ((NO_BEDROOMS > ''1'' AND > NO_FULL_BATHS > ''1'' AND SQUARE_FEET > ''500'' AND LIST_PRICE > ''0'' AND > LIST_PRICE < ''99999999'' AND id IN > 3,33,41,187,432,497,533,537,558,561,564,245,274,365,474,534,536,577,4,18,235,346,396,439,509,66,468)) > > Can anyone spot the SQL syntax error? Thanks in advance!! > > LAB > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
cool ... that was it!! Thank you!! ...AND id IN (?) On Aug 30, 4:49 pm, Jesse Clark <je...-A0oBrSHlaufCENZMoErytg@public.gmane.org> wrote:> IN (value1/,/value2,..) > > LAB wrote: > > In my controller neighborMatches I have an array of ids: > > > neighborMatches = neighborMatches.map!{|n| n.id} > > > I want to find all the properties that match some conditions, and is > > also in this list of ids: > > > @properties = Property.find(:all, :conditions => ["(NO_BEDROOMS > ? > > AND NO_FULL_BATHS > ? AND SQUARE_FEET > ? AND LIST_PRICE > ? AND > > LIST_PRICE < ? AND id IN ?)", beds, baths, sqft, priceLow, priceHigh, > > neighborMatches] > > > I get an invalid SQL error: Mysql::Error: #42000You have an error in > > your SQL syntax; check the manual that corresponds to your MySQL > > server version for the right syntax to use near > > ''3,33,41,187,432,497,533,537,558,561,564,245,274,365,474,534,536,577,4,18,235,346'' > > at line 1: SELECT * FROM properties WHERE ((NO_BEDROOMS > ''1'' AND > > NO_FULL_BATHS > ''1'' AND SQUARE_FEET > ''500'' AND LIST_PRICE > ''0'' AND > > LIST_PRICE < ''99999999'' AND id IN > > 3,33,41,187,432,497,533,537,558,561,564,245,274,365,474,534,536,577,4,18,235,346,396,439,509,66,468)) > > > Can anyone spot the SQL syntax error? Thanks in advance!! > > > LAB--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---