我在Rails應用程序上使用postgresql來記錄特定事件發生的時間。發生事件時的數據庫列名爲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的排序工作,我不明白爲什麼當我替換不同的列時出現語法錯誤。
WHEN是SQL(CASE WHEN子句)中的保留字,請嘗試使用'.order('events.when DESC')'(但我建議您更改此列的名稱)(也許'start_time'而不是'when'? ) – MrYoshiji
好的,謝謝你的指針 – Leahcim