1
 SELECT * FROM events WHERE repeat IS NOT NULL

你好!执行此选择时出现错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“IS NOT NULL”附近使用正确的语法

但是,如果我使用 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是保留关键字。有两种方法可以摆脱它,

一种是用反引号包裹,

SELECT * FROM events WHERE `repeat` IS NOT NULL

第二种是使用表上定义的别名

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