繁体   English   中英

为什么postgresql中的where查询不起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM