1
 SELECT * FROM events WHERE repeat IS NOT NULL

こんにちは!これを選択するとエラーが発生します:

SQL 構文にエラーがあります。2行目の「IS NOT NULL」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

しかし、たとえば user_id で同じ選択を行っても問題ありません。

SELECT * FROM events WHERE user_id IS NOT NULL

列の名前が正しいので、私は疑問に思っています

私のテーブルの構造:

  create_table "events", :force => true do |t|
    t.string   "title"
    t.date     "shedule"
    t.integer  "user_id"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
    t.string   "repeat"
  end
4

1 に答える 1

2

REPEATは予約済みのキーワードであるためです。そこから逃れる方法は2つあり、

1つはバッククォートでラップすることです。

SELECT * FROM events WHERE `repeat` IS NOT NULL

2 つ目は、テーブルで定義されたエイリアスを使用する方法です。

SELECT * FROM events e WHERE e.repeat IS NOT NULL
于 2013-04-07T17:01:54.363 に答える