SQL查询数组在数组字段中的位置

时间:2018-06-05 16:20:00

标签: sql ruby-on-rails ruby postgresql ruby-on-rails-4

我有一个表格,其中有一个名为socket.on("my_notification", function(html_code) { // use jQuery or similar to insert the html in the page }); 的数组字段。举个例如,在这个名为countries的表中,我有以下记录

country_list

现在,如果我想查询此表以找出哪些记录有Name Countries Asia ['Malaysia, Singapore, Hong Kong] Worldwide ['Malaysia, Singapore, Hong Kong, Croatia, USA] ,我该如何在我的ruby控制台中编写查询。

我试图这样做,但它没有用

['Malaysia, 'Singapore'] 但它没有按预期工作。

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

试试这个:

countries = ['Malaysia', 'Singapore']
query = CountryList.where(":name = ANY(country_list.countries)", name: countries[0])

countries[1..-1].each do |c|
  query = query.or(CountryList.where(":name = ANY(country_list.countries)", name: c))
 end
query

检查了它的工作

enter image description here

谢谢!

答案 1 :(得分:0)

查询序列化数据没有直接的方法。但另一项工作是从所有结果中选择/过滤。例如:

  

Model.all.select {| S | (s.countries& [' Malaysia',   '新加坡'。])本}