본문 바로가기
MySql

MySQL Rails Console은 ID 배열로 사용자를 찾습니다.

by 베이스 공부 2020. 12. 12.
반응형

그래서 사용자 ID 배열이 있습니다. 레일스 콘솔에 배열로 이러한 모든 사용자를 쿼리하는 방법이 있습니까?

뭔가

ids = [1, 2, 3, 4]

users = User.find(ids)

4 명의 사용자를 모두 반환합니까?

 

해결 방법

 

배열의 경우 다음 중 하나를 사용할 수 있습니다.

# Will raise exception if any value not found
User.find( [1,3,5] )

# Will not raise an exception
User.find_all_by_id( [1,3,5] ) # Rails 3
User.where(id: [1,3,5])        # Rails 4

범위를 사용하는 경우 다음을 사용할 수 있습니다.

# Will raise exception if any value not found
User.find((1..4).to_a)   #same as User.find([1,2,3,4])

# Will not raise an exception
User.find_all_by_id(1..4)  # Rails 3
User.where(id: 1..4)       # Rails 4

@ diego.greyrobot이 주석에서 언급했듯이 범위는 SQL BETWEEN 절을 발생시키는 반면 배열은 SQL IN 절을 발생시킵니다.

User.find_by_id () 를 사용하지 마세요 -ID를 어떻게 전달하더라도 하나의 레코드 만 반환합니다.

 

참조 페이지 https://stackoverflow.com/questions/21435768

 

 

반응형

댓글