【问题标题】:How can I write a following sql in rails?如何在rails中编写以下sql?
【发布时间】:2014-05-28 22:52:28
【问题描述】:
update table_name set filename = CONCAT(filename, "test") where id = 111

如何在 Rails 中使用 ActiveRecord 语法编写上述 SQL?

【问题讨论】:

标签: sql ruby-on-rails activerecord


【解决方案1】:

如果您有与给定表关联的模型,您可以这样做:

m = Model.find(111)
m.update_column(:filename, m.filename + 'test')

如果要更新多条记录:

Model.update_all('filename = CONCAT(filename, "test")')

或用条件限制元素的范围:

Model.where(...).update_all(...)

【讨论】:

  • @krunalshah:等等,什么?您问题中的示例 SQL 表明您只修改了一条记录。
  • 我们在该表中有多个具有相同 id 的记录。
  • @krunalshah - 这非常令人困惑,使用 id 作为主键是 Rails 的惯例,您至少应该在问题中提及它。
猜你喜欢
  • 1970-01-01
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
相关资源
最近更新 更多