0

目前,我正在尝试在 rails 3 应用程序中选择两个数组有一些重叠的所有对象。

我尝试了以下方法:

Contact.where("possible_unique_keys && ?" c.possible_unique_keys)

这使:

array value must start with "{" or dimension information

所以我尝试将后一条记录转换为 postgresql 数组,如下所示:

Contact.where("possible_unique_keys && string_to_array(?)", c.possible_unique_keys)

这使:

operator does not exist: character varying[] && text[]

如何将两个数组都转换为可以正确评估 && 的格式?

4

1 回答 1

1

我想我现在已经解决了它,并想出了一种方法来构建从 Ruby 数组到 postgresql 数组的查询(部分归功于为 rails/postgresql interoperability 编写的这段代码。

给定一个字符串列表 ["bill", "joe", "stu", "katie", "laura"],我们必须做一些杂技来让 postgresql 识别它们。这是构造请求的解决方案。

request = "SELECT * from  Contacts where possible_unique_keys && \'{"
list.each do |key|
    key.gsub("'", "\\'")
    if key == c.possible_unique_keys.last
        request << "\"#{key}\"}\'"
    else
        request << "\"#{key}\", "
    end
 end
 dupes = Contacts.find_by_sql(request)
于 2013-01-31T15:22:48.157 回答