我正在使用postgresql作为Rails应用程序上的数据库,该应用程序可以跟踪某些事件发生的时间。事件发生时的数据库列称为when
(我知道名字不好)。我可以这样做
@events = @group.events.order('created_at DESC')
但是,当我这样做时
@events = @group.events.order('when DESC')
我收到此错误
PG::SyntaxError: ERROR: syntax error at or near "when"
LINE 1: ..."events" WHERE "events"."group_id" = $1 ORDER BY when DESC
^
: SELECT "events".* FROM "events" WHERE "events"."group_id" = $1 ORDER BY when DESC
when
记录在数据库中具有此格式
when: "2013-08-07"
根据我告诉你的内容,你能看出我不能这样做的原因
@events = @group.events.order('when DESC')
能够在举办活动时订购活动对我来说非常重要。由于created_at的排序有效,我不明白为什么当我替换不同的列时会出现语法错误。
答案 0 :(得分:3)
WHEN是SQL中的保留字(考虑Switch案例:CASE <smth> WHEN ...
)
您可以尝试这样访问:
Event.order('events.when DESC')
您应该将列的名称更改为与when
不同的内容(请查看@PhilipHallstrom评论)