4
레일에 hstore 및 postgresql을 사용하여 제품 출시일을 포함한 제품 정보를 저장합니다. 이제 특정 연도 전후에 출시 된 모든 제품을 쿼리 할 수 있기를 원합니다. 내가 사용하는 '데이터'hstore 열에서 올해 필드를 포함하는 모든 레코드를 조회 할 수 있어요 : 연도 값을 hstore하기 때문에 hstore 및 레일을 사용하는 것보다 더 큰 값 찾기
Product.where("data ? 'year'")
문자열로 저장됩니다. 따라서, 나는 X보다보다 크 년 기록/찾기 위해 정수로 올해 캐스트 입력 시도 : 작업하는
Product.where("(data ? 'year')::int > 2011")
그러나
,이하지 않는 것, 나는 항상의 빈 상태 (empty)의 배열이 결과는 돌아온다. 내가 도대체 뭘 잘못하고있는 겁니까? 이것을 할 또 다른 방법이 있습니까?
난 당신이 찾고있는 운전자가'생각 ->'. 그래서, 어디에서 ("(data -> 'year') :: int> 2011")'시도해보십시오. http://www.postgresql.org/docs/9.3/static/hstore.html – j03w
-> 사용은 완벽하게 작동합니다! 원하는 경우 답변을 추가 할 수 있습니다. – graphmeter
j03w, 고맙습니다. – chourobin