Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 迁移错误-错误:SQL语法中有错误;检查相应的手册_Mysql_Ruby On Rails_Mysql2 - Fatal编程技术网

Mysql 迁移错误-错误:SQL语法中有错误;检查相应的手册

Mysql 迁移错误-错误:SQL语法中有错误;检查相应的手册,mysql,ruby-on-rails,mysql2,Mysql,Ruby On Rails,Mysql2,无法确定语法sql文件迁移的错误。请帮忙: 我运行rakedb:migrate 错误: Mysql2::Error:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行“更新照片集投票数”\u count=0,rating=0,其中id不在()/home/user/myapp/appmame/db/migrate/20131110162613\u重新计算照片\u rating.rb:8:IN“up” class RecalculatePhotosRating < Ac

无法确定语法sql文件迁移的错误。请帮忙:

我运行rakedb:migrate

错误:

Mysql2::Error:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行“更新照片集投票数”\u count=0,rating=0,其中id不在()/home/user/myapp/appmame/db/migrate/20131110162613\u重新计算照片\u rating.rb:8:IN“up”

class RecalculatePhotosRating < ActiveRecord::Migration
  def up
    if Vote.where("subject_type='Photo' and rating > 1").count > 0
      ActiveRecord::Base.connection.execute "DELETE FROM votes WHERE subject_type='Photo' AND rating <= 5"
      ActiveRecord::Base.connection.execute "UPDATE votes SET rating=1 WHERE subject_type='Photo'"
    end
    pids = Vote.where(subject_type: 'Photo').pluck(:subject_id).uniq
    ActiveRecord::Base.connection.execute "UPDATE photos SET votes_count = 0, rating = 0 WHERE id NOT IN (#{pids.join(', ')})"
    ActiveRecord::Base.connection.execute "UPDATE photos SET rating=(SELECT COUNT(*) FROM votes WHERE votes.subject_type='Photo' AND subject_id=photos.id) WHERE id IN (#{pids.join(', ')})"
    ActiveRecord::Base.connection.execute "UPDATE photos SET votes_count=(SELECT COUNT(*) FROM votes WHERE votes.subject_type='Photo' AND subject_id=photos.id) WHERE id IN (#{pids.join(', ')})"
  end

  def down
  end
end
class RecreactEphotosRating1”)。计数>0

ActiveRecord::Base.connection.execute“从投票中删除主题和评级您必须检查
pids
查询是否返回空结果:

class RecalculatePhotosRating < ActiveRecord::Migration
  def up
    if Vote.where("subject_type='Photo' and rating > 1").count > 0
      ActiveRecord::Base.connection.execute "DELETE FROM votes WHERE subject_type='Photo' AND rating <= 5"
      ActiveRecord::Base.connection.execute "UPDATE votes SET rating=1 WHERE subject_type='Photo'"
    end
    pids = Vote.where(subject_type: 'Photo').pluck(:subject_id).uniq
    unless pids.empty?
      ActiveRecord::Base.connection.execute "UPDATE photos SET votes_count = 0, rating = 0 WHERE id NOT IN (#{pids.join(', ')})"
      ActiveRecord::Base.connection.execute "UPDATE photos SET rating=(SELECT COUNT(*) FROM votes WHERE votes.subject_type='Photo' AND subject_id=photos.id) WHERE id IN (#{pids.join(', ')})"
      ActiveRecord::Base.connection.execute "UPDATE photos SET votes_count=(SELECT COUNT(*) FROM votes WHERE votes.subject_type='Photo' AND subject_id=photos.id) WHERE id IN (#{pids.join(', ')})"
    end
  end

  def down
  end
end
class RecreactEphotosRating1”)。计数>0

ActiveRecord::Base.connection.execute“删除我插入的主题和评级的投票,除非pids.empty?”?同样的错误。