1
このような単純なクエリ。なぜ構文エラーですか?
MyModel.where('student_id = :id AND from <= :date AND to >= :date', {:id => student.id, :date => day.to_s(:db)})
例外
=> ActiveRecord::JDBCError: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from <= '2017-02-28 00:00:00.000' AND to >= '2017-02-28 00:00:00.000')'
を返し、私は、なぜ得ることはありません。 (あなたが予約語に基づいて、列名を使用しない場合は、より良い)を使用すると、列名from
を持っているときにbackticsを使用する必要があり、予約語であるから、
'FROM'は、MySQLの予約語であります@ラプターの撮影。 – Raptor
これは私が考えていたものです。しかし、私のテーブルにはフィールドがあります。私はどうしたらいいですか? – Viktor
シンプル:名前を変更します。カラム名とテーブル名に予約語を使用しないでください。 – Raptor