読者です 読者をやめる 読者になる 読者になる

PostgreSQLでwhereの値にダブルクォートでエラる

postgresql

Railsで以下のようなコード書いてて

entries.where('url != ""')

MySQLSQLiteでは動いてたんだけどPostgreSQLに移行したらエラって動かなくなった。

MySQL uses ' or " to quote values (i.e. WHERE name = "John"). This is not the ANSI standard for databases. PostgreSQL uses only single quotes for this (i.e. WHERE name = 'John'). Double quotes are used to quote system identifiers; field names, table names, etc. (i.e. WHERE "last name" = 'Smith').

http://wiki.postgresql.org/wiki/Things_to_find_out_about_when_moving_from_MySQL_to_PostgreSQL

ということらしい。

とりあえずこれで直った。

entries.where("url != ''")