0

在我试图完成的 rake 任务中,我在 PostgreSQL 中的查询中遇到错误。

  posts = Post.where("status IS ? AND publish_on < ?", 'queued', Time.now)

这是错误:

PGError: ERROR:  syntax error at or near "'queued'"
    LINE 1: SELECT "posts".* FROM "posts"  WHERE (status IS 'queued' AND...
                                                            ^
    : SELECT "posts".* FROM "posts"  WHERE (status IS 'queued' AND publish_on < '2012-04-29 23:44:06.423516')

起初我以为是引号,但更改它们不起作用。现在我认为这可能是我如何构建 and 子句?

4

1 回答 1

2

IS仅用于与TRUEFALSE或进行比较NULL。您可能想要=

posts = Post.where("status = ? AND publish_on < ?", 'queued', Time.now)
于 2012-04-29T23:53:16.000 回答