我經常遇到的場景,在這裏我想查詢一個實體與特定值:在Doctrine 2 DQL中是否有一種簡單的方法來組合IS NULL和=:value?
$query = $em->createQuery('SELECT e FROM Entity e WHERE e.parent = :parent');
$query->setParameter('parent', $parent);
通常情況下,這個值可以是NULL,但WHERE e.parent = 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);
}
雖然我理解其背後的SQL/DQL NULL != NULL
的理由,事實是,該結果是在這種情況下,真的很煩。
當參數可以爲null時,是否有更簡潔的方式來執行此查詢?
我的回答不正確? – ThaDafinser