gpt4 book ai didi

ruby-on-rails - 如何在 Rails 4 中通过 hstore 属性对结果进行排序?

转载 作者:数据小太阳 更新时间:2023-10-29 06:48:40 25 4
gpt4 key购买 nike

如何通过 hstore 属性对查询结果进行排序?

@items = Item.includes(:product).order('products.properties @> hstore("platform")')

原因

PG::Error: ERROR:  column "platform" does not exist
LINE 1: ...oduct_id" ORDER BY products.properties @> hstore("platform"...

platform是一个hstore键,存放在properties列中,是一个hstore类型。

最佳答案

双引号用于在 PostgreSQL(以及其他遵循该标准的数据库)中引用标识符(例如表名和列名)。所以当你说:

hstore("platform")

PostgreSQL 将 "platform" 视为带引号的列名称,并且由于没有 platform 列,因此您会收到错误消息。

标准SQL中的字符串用单引号引起来,你想说:

.order("products.properties @> hstore('platform')")

这可能仍然会失败,hstore('platform') 没有多大意义,在这里使用 @> 也没有意义; a @> b意味着

does the hstore a contain the hstore b

如果您尝试对 properties hstore 中 'platform' 键的值进行排序,那么您需要使用 -> 像这样查找 'platform' 键:

.order("products.properties -> 'platform'")

关于ruby-on-rails - 如何在 Rails 4 中通过 hstore 属性对结果进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16284948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com