Rails中的MYSQL查询

Rails中的MYSQL查询,mysql,ruby-on-rails,ruby,database,mysql2,Mysql,Ruby On Rails,Ruby,Database,Mysql2,需要更新mysql数据库中的字段。希望在rails中使用以下查询: update users set exported = TRUE where id = #{name[12]} 目前,有以下几点: db = Mysql2::Client.new( :host => 'localhost', :username => 'username', :password => 'password', :database => 'database') results = db.q

需要更新mysql数据库中的字段。希望在rails中使用以下查询:

update users set exported = TRUE where id = #{name[12]}
目前,有以下几点:

db = Mysql2::Client.new( :host => 'localhost', :username => 'username', :password => 'password', :database => 'database')

results = db.query("select * from users where start_date is not NULL AND exported = 0").each(:as => :array)

results.each do |name|

db.query("update users set exported = TRUE where id = #{name[12]}")

end

索引12等于UID。

如果您使用的是rails,我建议使用。您的更新将是:

@users = User.find(:all, :where => 'start_date is not null and exported = 0 and id = ?', name[12])
@users.each{ |user|
    user.exported = true
    user.save!
}

希望有帮助!如果您需要进一步的帮助,请留下评论。

我建议您在使用Ruby on Rails时用于数据库调用

我假设您至少有这样一个基本的
用户
模型:

class User < ApplicationRecord
end
User.where.not(start_date: nil).where(exported: false).update_all(exported: true)

find(:all)
似乎有点过时了
User.where('start\u date!=NULL,exported=0,id=?',name[12])。update\u all(exported:true)
至少适用于Rails 4+。true,OP没有指出他使用的版本。该查询在控制台中工作。
find(:all)
自Rails 3.2以来一直被弃用。我怀疑OP使用的是这么旧的Rails版本。问题:即使我们将数据输出到外部mysql数据库,我们仍然可以使用activerecord吗?@Arjae\t这是另一个问题。如果你和我聊天,我会调查的。或者,问一个新问题。看起来好像有一种方法。这应该让您开始了。您知道Rails中存在活动记录吗?