[英]Why doesn't the where query work in postgresql?
我在Rails应用程序中有一个Ruby,在其中查询布尔列Flag。 代码是:
Merchant.where(“ Flag =?”,false)
但是,这根本不起作用,唯一的结果是,Merchants表没有列名“ flag”。 有没有什么办法解决这一问题? 列名以大写字母开头,但是正在搜索小写的“ flag”
如果在创建表时用引号引起来,则必须永远用引号引起来。 因此,如果您以此开始:
create table merchants (
-- ...
"Flag" boolean
-- ...
)
然后,您必须使用
Merchant.where('"Flag" = ?', false)
PostgreSQL将所有未加引号的标识符标准化为小写(而不是标准所说的大写),这就是为什么错误消息抱怨flag
而不是Flag
。
如果可以,您可能只希望使用小写的列名来重建表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.