반응형
ActiveRecord where field =? 가능한 값의 배열
나하고 싶어
Model.where('id = ?', [array of values])
OR 문을 함께 연결하지 않고이 조회를 수행하려면 어떻게해야합니까?
에서 여기 SQL을 사용하여 수행 할 것으로 보인다 in
문을 :
Model.where('id IN (?)', [array of values])
또는 더 간단하게 kdeisz가 지적했듯이 (Arel을 사용하여 SQL 쿼리 생성) :
Model.where(id: [array of values])
로부터 액티브 쿼리 인터페이스 가이드
IN 표현식을 사용하여 레코드를 찾으려면 배열을 조건 해시에 전달할 수 있습니다.
Client.where(orders_count: [1,3,5])
가독성을 위해 다음과 같이 더욱 단순화 할 수 있습니다.
Model.find_by(id: [array of values])
이것은를 사용하는 것과 동일 where
하지만 더 명시 적입니다.
Model.where(id: [array of values])
mongoid에서 쿼리를 찾고 있다면 이것이 바로Model.where(:field.in => ["value1", "value2"] ).all.to_a
where 와 find_by 사이 에는 '작은'차이가 있습니다.
find_by 는 발견 된 경우 하나의 레코드 만 반환합니다. 그렇지 않으면 nil이됩니다.
지정된 조건과 일치하는 첫 번째 레코드를 찾습니다. 묵시적 주문이 없으므로 주문이 중요한 경우 직접 지정해야합니다. 레코드가 없으면 nil을 반환합니다.
def find_by(*args)
where(*args).take
rescue RangeError
nil
end
한편 그것이 관계를 반환합니다
인수의 조건에 따라 현재 관계를 필터링 한 결과 인 새 관계를 반환합니다.
따라서 귀하의 상황에서 적절한 코드는 다음과 같습니다.
Model.where(id: [array of values])
참고 URL : https://stackoverflow.com/questions/28954500/activerecord-where-field-array-of-possible-values
반응형
'Nice programing' 카테고리의 다른 글
'잘못된 업데이트 : 섹션 0의 잘못된 행 수 (0) | 2020.11.26 |
---|---|
Youtube api v3 사용자 동영상 목록 가져 오기 (0) | 2020.11.26 |
Spring Boot 애플리케이션의 환경 별 application.properties 파일 (0) | 2020.11.26 |
Swift에서 throw와 rethrows의 차이점은 무엇입니까? (0) | 2020.11.26 |
내 web.config 파일에 사전 객체를 저장하려면 어떻게합니까? (0) | 2020.11.26 |