使用Ruby 1.9。在Ruby中用圆括号替换方括号
我有一个阵列[1,2,3]
我需要将其转换为一种格式('1', '2', '3')
以应用它的SQL查询里面(陈述)和数据库为MySQL。请建议一些好的解决方案。
谢谢:)
使用Ruby 1.9。在Ruby中用圆括号替换方括号
我有一个阵列[1,2,3]
我需要将其转换为一种格式('1', '2', '3')
以应用它的SQL查询里面(陈述)和数据库为MySQL。请建议一些好的解决方案。
谢谢:)
看看上面不知道的意见,你还是要做到这一点,但只是为了好玩:
"('#{ [1,2,3].map(&:to_s).join("\',\'") }')"
#=> "('1','2','3')"
UPDATE:基于@tadman
评论假设这里的一个SQL实现是一些伪代码:
irb(main):003:0> array = [1,2,3,4]
=> [1, 2, 3, 4]
irb(main):004:0> array.map{|id| "$#{id}"}.join(",")
=> "$1,$2,$3,$4"
irb(main):011:0> ["SELECT * FROM table WHERE id IN (#{array.map{|id| "$#{id}" }.join(',')})", array]
=> ["SELECT * FROM table WHERE id IN ($1,$2,$3,$4)", [1, 2, 3, 4]]
任何数据库层像[Sequel](https:// github。 com/jeremyevans/sequel)会为你做这个。不要单独做。另外,请尝试升级您的Ruby。 1.9已经过去了。 – tadman
@tadman:MySQL不会自动执行此操作。将尝试升级,谢谢:) –
你如何从你的Ruby代码连接到数据库?你是否使用了像“ActiveRecord”,“Sequel”等的ORM? – james246