私は定期的に、私は特定の値を持つエンティティを照会するシナリオ、渡って来る:多くの場合、この値はNULLにすることができDoctrine 2 DQLにIS NULLと=を組み合わせる簡単な方法はありますか?
$query = $em->createQuery('SELECT e FROM Entity e WHERE e.parent = :parent');
$query->setParameter('parent', $parent);
が、WHERE e.parent = NULL
は次のように周りにハックするために私を強制的に、何の結果が得られていませんこれは:私はSQL/DQLでNULL != NULL
の根拠を理解しながら
if ($parent === null) {
$query = $em->createQuery('SELECT e FROM Entity e WHERE e.parent = IS NULL');
}
else {
$query = $em->createQuery('SELECT e FROM Entity e WHERE e.parent = :parent');
$query->setParameter('parent', $parent);
}
、事実はあり、その結果は、この場合には本当に迷惑です。
パラメータがnullの場合、このクエリを実行するためのよりクリーンな方法がありますか?
私の答えが正しくありませんか? – ThaDafinser