2016-11-01 2 views
1

Ich möchte nach einem bestimmten Feld in meiner Tabelle filtern, aber auch jeden Datensatz akzeptieren, in dem dieses Feld den Wert NULL hat. Mit anderen Worten:Ich akzeptiere Nullwerte in einer Constraint-Bedingung in Doktrine 2

  • , wenn der Wert NULL,
  • anderes Ergebnis: wenn der Wert in der gegebenen Liste von Werten ist, um die Ergebnisse
  • anderes: überspringen Sie diesen Rekord

Verwendung die folgende Einschränkung, die NULL-Datensätze sind von der Ergebnismenge ausgeschlossen:

$ q-> andWhereIn ('rec.rec_loc_id', $ Berechtigungen ['Standorte'] ['IDs]);

Ich habe darüber nachgedacht, eine weitere Bedingung oderWhere() mit 'IS NULL' hinzuzufügen, aber aufgrund anderer (bedingter) Where-Bedingungen innerhalb der gleichen Abfrage würde dies viel zu komplex werden.

Antwort

0

Meine eigene Lösung, obwohl ich es immer noch denken, ein besserer Weg sein sollte, um das gewünschte Ergebnis zu erzielen:

$q->andWhereIn('IFNULL(rec.rec_loc_id, 0)', array_merge(array(0),$permissions['locations']['ids']));

Verwandte Themen