使用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