We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 508fb38 commit 06bcbedCopy full SHA for 06bcbed
frameworks/Ruby/roda-sequel/boot.rb
@@ -71,13 +71,10 @@ def self.batch_update(worlds)
71
if DB.database_type == :mysql
72
worlds.map(&:save_changes)
73
else
74
- ids = []
75
- sql = String.new("UPDATE world SET randomnumber = CASE id ")
76
- worlds.each do |world|
77
- sql << "when #{world.id} then #{world.randomnumber} "
78
- ids << world.id
79
- end
80
- sql << "ELSE randomnumber END WHERE id IN ( #{ids.join(',')})"
+ sql_values = worlds.map { "(#{_1.id}, #{_1.randomnumber})" }.join(', ')
+ sql = "UPDATE world SET randomnumber = updated.randomnumber "
+ sql << " FROM (VALUES #{ sql_values }) AS updated (id, randomnumber)"
+ sql << "WHERE id = updated.id"
81
DB.run(sql)
82
end
83
0 commit comments