# String of strings

**URL:** <https://www.ruby-forum.com/t/string-of-strings/79960>\
**Category:** Ruby\
**Created:** [December 20, 2006, 7:14pm UTC](https://www.ruby-forum.com/t/string-of-strings/79960 "2006-12-20T19:14:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Josselin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@Josselin](https://www.ruby-forum.com/u/Josselin)\
**Post date:** [December 20, 2006, 7:14pm UTC](https://www.ruby-forum.com/t/string-of-strings/79960/1 "2006-12-20T19:14:21Z")

</div>

I got an array of id’s :

ids = [22443, 22468, 22371, 22218, 22472, 22377, 22245]

I would like to get a string of strings (to be used in SQL WHERE…IN  
clause

" ‘22443’ , ’ 22468’ , ’ 22371’ , ’ 22218’ , ‘22472’ , ‘22377’ , ‘22245’  
"

If a use ids.join(’,’), I get  
“22443,22468,22371,22218,22472,22377,22245” which is obviously not  
useful for SQL…

is there any shorcuts or should I concatenate each element ?

thanks

joss

---

<div class="post-metadata">

**Author:** ![Josselin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@Josselin](https://www.ruby-forum.com/u/Josselin)\
**Post date:** [December 20, 2006, 7:16pm UTC](https://www.ruby-forum.com/t/string-of-strings/79960/2 "2006-12-20T19:16:30Z")

</div>

On 12/19/06, Josselin [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> useful for SQL…  
> ids.map {|i| “‘#{i}’”}.join(" ,")

martin

---

<div class="post-metadata">

**Author:** ![Josselin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@Josselin](https://www.ruby-forum.com/u/Josselin)\
**Post date:** [December 20, 2006, 7:22pm UTC](https://www.ruby-forum.com/t/string-of-strings/79960/3 "2006-12-20T19:22:47Z")

</div>

On 2006-12-19 09:29:38 +0100, “Martin DeMello” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
said:

> > “22443,22468,22371,22218,22472,22377,22245” which is obviously not  
> > useful for SQL…
> 
> ids.map {|i| “‘#{i}’”}.join(" ,")
> 
> martin

thanks Martin… I realize that the error I got was not due to  
integers list , “22443, 22468, 22371, 22218, 22472, 22377, 22245” is  
accepted… so the join(‘,’) is ok…  
but the list is too long … for a select statement… (I can have 50  
numbers or more…) there is a characters limit to the select

joss

---

<div class="post-metadata">

**Author:** ![Josselin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@Josselin](https://www.ruby-forum.com/u/Josselin)\
**Post date:** [December 20, 2006, 7:24pm UTC](https://www.ruby-forum.com/t/string-of-strings/79960/4 "2006-12-20T19:24:56Z")

</div>

On 12/19/06, Martin DeMello [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ‘22245’ "
> 
> > If a use ids.join(‘,’), I get  
> > “22443,22468,22371,22218,22472,22377,22245” which is obviously not  
> > useful for SQL…
> 
> ids.map {|i| “‘#{i}’”}.join(" ,")
> 
> martin

“'#{ids.join(”‘,’“)}'”

Johan

---

<div class="post-metadata">

**Author:** ![Josselin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@Josselin](https://www.ruby-forum.com/u/Josselin)\
**Post date:** [December 20, 2006, 7:24pm UTC](https://www.ruby-forum.com/t/string-of-strings/79960/5 "2006-12-20T19:24:54Z")

</div>

ids = [22443, 22468, 22371, 22218, 22472, 22377, 22245]  
“IN (’”+ids.join("’, ‘")+"’)"

Shiwei  
(The views expressed are my own and not necessarily those of Oracle and  
its affiliates.)
