diff --git a/src/QueryParserCustomFields.php b/src/QueryParserCustomFields.php index bde192f..abd2f17 100755 --- a/src/QueryParserCustomFields.php +++ b/src/QueryParserCustomFields.php @@ -400,14 +400,19 @@ private function prepareNormalSql(array $searchCriteria, string $classname, stri $operator = 'LIKE'; } - if (!$vKey) { - $sql .= ' ' . $andOr . ' (' . $classname . '.' . $searchField . ' ' . $operator . ' :f' . $searchField . $fKey . $vKey; + if ($value == 'null') { + $logicConector = !$vKey ? " " . $andOr .' (' : ' OR '; + $sql .= $logicConector . $classname . '.' . $searchField . ' IS NULL'; } else { - $sql .= ' OR ' . $classname . '.' . $searchField . ' ' . $operator . ' :f' . $searchField . $fKey . $vKey; - } + if (!$vKey) { + $sql .= ' ' . $andOr . ' (' . $classname . '.' . $searchField . ' ' . $operator . ' :f' . $searchField . $fKey . $vKey; + } else { + $sql .= ' OR ' . $classname . '.' . $searchField . ' ' . $operator . ' :f' . $searchField . $fKey . $vKey; + } - $this->bindParamsKeys[] = 'f' . $searchField . $fKey . $vKey; - $this->bindParamsValues[] = $value; + $this->bindParamsKeys[] = 'f' . $searchField . $fKey . $vKey; + $this->bindParamsValues[] = $value; + } } $sql .= ')';