我正在使用带有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中应该怎么看?
答案 0 :(得分:7)
{}
不是HSTORE
的有效表达。
相反,使用表达式hstore('')
甚至只是''
来表示空HSTORE
,如下所示:
Video.where("vd_data != ''")
SQLFiddle Demo 中的证据。