获取空hstore的记录

时间:2014-05-12 08:00:46

标签: postgresql activerecord pg hstore

我正在使用带有hstore扩展名的PostgreSQL数据库,我试图让最简单的事情成为可能 - 获取所有记录,vd_data (hstore)列为空({}

这听起来很容易,但我自己无法做到这一点,也没有在互联网上找到任何相关信息。我在我的rails应用程序中使用它,所以我将使用activerecord DSL发布一些示例:

Video.where('vd_data != NULL')
# => [] (empty result. I have about 20 videos with vd_data populated in my db)

Video.where('vd_data != {}')
# => Syntax error

Video.where('vd_data != ""')
# => ERROR:  zero-length delimited identifier at or near """"

有人可以告诉我这种查询在纯SQL中应该怎么看?

1 个答案:

答案 0 :(得分:7)

{}不是HSTORE的有效表达。

相反,使用表达式hstore('')甚至只是''来表示空HSTORE,如下所示:

Video.where("vd_data != ''")

SQLFiddle Demo 中的证据。