2012-02-06 2 views
2

저는 article이라는 테이블에 쿼리가 있습니다.입력으로 쿼리 쿼리

$q = Doctrine_Query::create() 
        ->from('article a') 
        ->WhereIn('a.name', $input) 
        ->execute(); 

$input = array(
    0 => Tomato, 
    1 => Apple, 
    2 => Banana 
); 

나는 모든 입력을 찾습니다. 하지만 질의의 출력은 애플, 바나나, 토마토와 같은 순서 다. 나는 입력과 같은 명령을 원한다? 나는 그것을 어떻게 깨달을 수 있는가?

+1

+1, 흥미로운 질문 :-)시 미세 아무 생각이 나를 적합하지 않습니다. DQL에서 그렇게 할 수 있을지는 의문입니다. – greg0ire

+2

[this] (https://groups.google.com/group/doctrine-user/browse_thread/thread/ffac5e58feac9ef9?pli=1) 스레드를 확인하십시오. 해결책은 아니지만 해결 방법입니다. – Maerlyn

답변

2

은 내가 RDBMS로 MySQL을 가진 프로젝트에서이 같은 것을 사용 :

$ids = array(2,9,3,64,23,38); // example IDs 
$qry->addOrderBy("FIND_IN_SET(q.id, '" . implode(",", $ids) . "')"); 

$ids의 값이 알려지고 신뢰할 수있는 한 프로젝트에, 그리고이었다 Xapian 검색 쿼리에서 온 검색 용어와의 관련성에 따라 정렬. FIND_IN_SET()을 사용하여 올바른 문서를 검색하고 검색 결과 페이지의 관련성 순서대로 제시 할 수있었습니다.

면책 조항 :이 기능에 대한 지원 수준을 모르겠지만, 그래도 ...