使用通配符对阵列列进行Activerecord查询

Ovi*_*ron 5 ruby postgresql activerecord ruby-on-rails

所以,假设我有一个Customer带有数组列的模型phones.通过手机找到所有客户非常容易

Customer.where('? = ANY(phones)', '+79851234567')
Run Code Online (Sandbox Code Playgroud)

但是LIKE,当我想找到类似于给定电话的客户时,我无法弄清楚如何使用通配符,例如:

Customer.where('ANY(phones) LIKE ?', '+7985%')
Run Code Online (Sandbox Code Playgroud)

我正在使用PostgreSQL 9.5和Rais 4.2

有任何想法吗?

dns*_*nsh 1

你能试试这个吗

Customer.where("array_to_string(phones, ', ') like ?", '+7985%')
Run Code Online (Sandbox Code Playgroud)

我相信这会起作用。