String problem


#1

Hi How to find the resut by passing string as parameters in clause of
mysql query

For example
arr = [‘t’,‘a’]
@user = User.find(:all,:conditions=>[“firstname IN(#{arr.join(’,’)})”])
it is executing like
select * from users where firstname IN(‘t,a’)
it returns 0 rows

Plz reply if anybody knows solution


#2

Hi –

On Mon, 24 Nov 2008, Ganesh G. wrote:

Hi How to find the resut by passing string as parameters in clause of
mysql query

For example
arr = [‘t’,‘a’]
@user = User.find(:all,:conditions=>[“firstname IN(#{arr.join(’,’)})”])
it is executing like
select * from users where firstname IN(‘t,a’)
it returns 0 rows

You’ll probably get more responses to ActiveRecord questions on the
Rails mailing lists. Meanwhile:

:conditions => [“firstname IN (?)”, arr]

David


#3

Ganesh G. wrote:

Hi How to find the resut by passing string as parameters in clause of
mysql query

For example
arr = [‘t’,‘a’]
@user = User.find(:all,:conditions=>[“firstname IN(#{arr.join(’,’)})”])

Docs: http://apidock.com/rails/ActiveRecord/Base/find/class

test666> arr = %w(a b)
=> [“a”, “b”]
test666> User.find(:all, :conditions => { :firstname => arr} )
User Load (26.0ms) SELECT * FROM users WHERE (users.firstname
IN (‘a’,‘b’))