Doctrine 2의 MySQL FIELD 함수별 정렬
Doctrine 2는 기본적으로 MySQL FIELD 기능을 지원하지 않습니다. 이를 활용하려면 확장 프로그램에서 제공하는 사용자 정의 문자열 함수를 활용할 수 있습니다.
DoctrineExtensions 솔루션:
DoctrineExtensions 라이브러리에는 확장 프로그램을 에뮬레이트하는 'FIELD'라는 사용자 정의 문자열 함수가 포함되어 있습니다. MySQL FIELD 함수. 이를 구현하려면 다음 구성을 추가하세요.
<code class="php">$doctrineConfig = $this->em->getConfiguration(); $doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');</code>
사용법:
FIELD 함수는 SELECT, WHERE 및 BETWEEN 절에서 사용할 수 있습니다. ORDER BY에서 직접 사용할 수는 없지만 SELECT 절에 추가 필드를 추가하고 대신 해당 필드별로 정렬하는 것이 해결 방법입니다.
<code class="php">$qb ->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field") ->from("Entities\Round", "r") ->where($qb->expr()->in("r.id", $ids)) ->orderBy("field");</code>
SELECT 절에 HIDDEN을 지정하면 결과 행에 추가 필드가 나타납니다. 이를 통해 Doctrine 2.2를 사용하여 IN 표현식 내에서 값을 효율적으로 정렬할 수 있습니다.
위 내용은 교리 2에서 MySQL의 FIELD 함수를 사용하여 결과를 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!