2
ID 집합에 대해 일치하는 행을 반환하는 쿼리를 사용하여 Anorm을 사용하여 결과 목록을 반환하려고합니다. 예 :Play Framework 2.0 Anorm을 사용하여 쿼리에서 집합을 나타내는 올바른 방법
select *
from example
where id in (1,2,3,4,5)
나는 ID가 문자열 "1,2,3,4,5"입니다
SQL(
"""
select *
from example
where id in ({ids})
"""
).on('ids -> ids).as(int("id") ~ str("name") *)
를하려고하면 그것은 단지 첫 번째 행을 반환합니다. 일련의 ID를 주입하는 올바른 방법은 무엇입니까?
좋아요! 정보를 제공해 줘서 고마워, 내가 어쨌든 잘못하고있는 것처럼 느껴졌다. –
고마워요,하지만 여전히 조금 미친 짓이며 매개 변수화 된 시퀀스를 지원해야합니다. 문자열로 "scala noob expected-to-work"바인딩 기법을 사용하면 로거에서 완벽하게 유효한 SQL이 생성되지만 자동으로 실패한다는 사실은 말할 필요도 없습니다. – Brian
@notbrain Play 개발자 팀 (여기) (https://groups.google.com/forum/?fromgroups=#!topic/play-framework/meYkd-KKQRE)에서 여러 번 논의되었습니다. [여기 ] (http://play.lighthouseapp.com/projects/82401/tickets/188-make-in-clause-in-anorm-easier) 및 [여기] (https://groups.google.com/forum/? fromgroups = #! topic/play-framework/BNFvma2vu5U)를 먼저 읽어보십시오. 하지만이 문제가 해결되어야한다는 것에 전적으로 동의합니다. 여기서 나의 대답은 웜과 IN 절의 단점을 극복하는 한 가지 방법 일뿐입니다. – maba