Php 在'中接受空值;在';第2条原则中的限制

Php 在'中接受空值;在';第2条原则中的限制,php,doctrine-orm,Php,Doctrine Orm,我想对表中的特定字段进行筛选,但也要接受该字段值为NULL的每条记录。换言之: 如果值为NULL,则添加到结果 否则:如果值在给定的值列表中,则添加到结果中 否则:跳过此记录 使用以下约束,将从结果集中排除空记录: $q->ANDWHERE('rec.rec_loc_id',$permissions['locations']['id') 我曾考虑过添加另一个条件或where()加上'IS NULL',但由于同一查询中的其他(条件)where约束,这将变得太复杂。我自己的解决方案,尽管我仍然认

我想对表中的特定字段进行筛选,但也要接受该字段值为NULL的每条记录。换言之:

  • 如果值为NULL,则添加到结果
  • 否则:如果值在给定的值列表中,则添加到结果中
  • 否则:跳过此记录
使用以下约束,将从结果集中排除空记录:

$q->ANDWHERE('rec.rec_loc_id',$permissions['locations']['id')


我曾考虑过添加另一个条件或where()加上'IS NULL',但由于同一查询中的其他(条件)where约束,这将变得太复杂。

我自己的解决方案,尽管我仍然认为应该有更好的方法来实现所需的结果:

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

我自己的解决方案,尽管我仍然认为应该有更好的方法来实现预期的结果:

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