TableName:NameYear
这是我的表
ID name min_max_year
1 xyz [1970,1971...2014]
2 abc [1980,1981...2014]
2 pqr [2000,2001...2014]
现在我想找到MinMaxYear包含1980年的记录。
我该怎么办?
我试试这种方式:NameYear.where(“min_max_year IN(?)”,1980)
但收到此错误:
ActiveRecord::StatementInvalid: PG::Error: ERROR: operator does not exist: text = integer
LINE 1: ...ROM "name_year" WHERE (min_max_year IN (1980))
答案 0 :(得分:1)
您需要在数组列上使用ANY
子句:
SELECT * FROM NameYear
WHERE 1980 = ANY(min_max_year);
ActiveRecord语句将是:
NameYear.where("? = ANY(min_max_year)", 1980)
这将选择min_max_year
列包含值为1980的任何记录。