这是我的表结构:
Table name:Items
--------------------------------
id | category_id | code |
--------------------------------
1 | 1 | 15156 |
2 | 1 | 15157 |
2 | 1 | 15158 |
2 | 1 | 15159 |
2 | 1 | 15160 |
2 | 1 | 15161 |
此处代码字段是唯一的,其类型为字符串。我需要将代码字段值增加+1(代码字段是字符串)。
答案 0 :(得分:0)
答案 1 :(得分:-1)
update_all
无效,因为记录属性不可用。
更好的可能是......
minimum = "15157"
maximum = "15160"
Item.where("code >= ? AND code <= ?", minimum, maximum).each{|i| i.update_attribute(:code, "#{i.code.to_i + 1}") }
(编辑以反映传递给update_attribute
的两个参数)
编辑反映@rustamagasanov建议限制给定范围的代码值......