Я хотел бы отфильтровать определенные поля в моей базе данных, которые имеют значение Null, 0 или ''.К сожалению, использование NULL в состоянии IN не может ничего вернуть ... Я полагаю, что это связано с NULL-сравнениями в SQL, которые оцениваются как UNKNOWN.Например:
$filterField = $this->Model->find('list', array(
'fields' => array('id','name'),
'recursive' => 0,
'conditions' => array('Model.related_string' => array(Null, 0, '')),
'order' => array('Model.name ASC')
)
);
Это всегда возвращает без ошибок и ноль строк, потому что результирующий запрос имеет SELECT ... WHERE 'Model'.'related_string' IN (NULL, 0, '')
.Однако, если я хочу ИЛИ условие NULL отдельно, я не могу сделать это с синтаксисом массива PHP.Я перезапишу значения.Например:
$conditions['OR'] = array(
'Model.related_string' => array('', 0),
'Model.related_string' => NULL);
Ошибка.Поиск будет выполняться только для записей NULL, когда значение ключа Model.related_string будет перезаписано.Я застрял писать две находки?