exempel från doktrindokument:
INDEX BY-konstruktionen är inget som direkt översätts till SQL men som påverkar objekt- och arrayhydrering. Efter varje FROM- och JOIN-sats anger du med vilket fält denna klass ska indexeras i resultatet. Som standard inkrementeras ett resultat med numeriska nycklar som börjar med 0. Men med INDEX BY kan du ange vilken annan kolumn som helst som nyckeln för ditt resultat, men det är egentligen bara meningsfullt med primära eller unika fält:
SELECT u.id, u.status, upper(u.name) nameUpper FROM User u INDEX BY u.id
JOIN u.phonenumbers p INDEX BY p.phonenumber
Returnerar en matris av följande slag, indexerad av både användar-id och telefonnummer-id:
array
0 =>
array
1 =>
object(stdClass)[299]
public '__CLASS__' => string 'Doctrine\Tests\Models\CMS\CmsUser' (length=33)
public 'id' => int 1
..
'nameUpper' => string 'ROMANB' (length=6)
1 =>
array
2 =>
object(stdClass)[298]
public '__CLASS__' => string 'Doctrine\Tests\Models\CMS\CmsUser' (length=33)
public 'id' => int 2
...
'nameUpper' => string 'JWAGE' (length=5)