Запрос MySQL с помощью CodeIgniter, выбор строк, где поле равно NULL



Я использую класс активной записи CodeIgniter для запроса базы данных MySQL. Мне нужно выбрать строки в таблице, где поле не имеет значения NULL:



$this->db->where('archived !=', 'NULL');
$q = $this->db->get('projects');


что возвращает только этот запрос:



SELECT * FROM projects WHERE archived != 'NULL';


The

847   9  

9 ответов:

where('archived IS NOT NULL', null, false)

активная запись определенно имеет некоторые причуды. Когда вы передаете массив в $this->db->where() функция он будет генерировать IS NULL. Например:

$this->db->where(array('archived' => NULL));

производит

WHERE `archived` IS NULL 

причуда заключается в том, что нет эквивалента для отрицательного IS NOT NULL. Однако есть способ сделать это, который дает правильный результат и все еще избегает утверждения:

$this->db->where('archived IS NOT NULL');

производит

WHERE `archived` IS NOT NULL

Null не должно быть установлено в строку...

$this->db->where('archived IS NOT', null);

он работает правильно, когда null не заключен в кавычки.

CodeIgniter 3

только:

$this->db->where('archived IS NOT NULL');

сгенерированный запрос:

WHERE archived IS NOT NULL;

$this - > db - >where('archived IS NOT NULL', null,ложные);

обратная:

$this->db->where('archived');

сгенерированный запрос:

WHERE archived IS NULL;

гораздо лучше использовать следующие Для не null

где ('archived IS NOT NULL', null);

For равно null

где ('archived', null);

и просто чтобы дать вам еще один вариант, вы можете использовать NOT ISNULL(archived) как ваш где фильтр.

Codeigniter генерирует запрос "IS NULL", просто оставив вызов без параметров:

$this->db->where('column');

сгенерированный запрос:

WHERE `column` IS NULL

$этом->дБ->Верховный('end_date и есть', 'нуль', ложь);

один из способов проверить, является ли столбец null или нет

$this->db->where('archived => TRUE);
$q = $this->db->get('projects');

в php если столбец имеет данные, он может быть представлен как True в противном случае False Чтобы использовать множественное сравнение в команде where и проверить, не являются ли данные столбца null сделайте это как

вот полный пример того, как я фильтрую столбцы в предложении where (Codeignitor). Последнее шоу Not NULL сжатие

$where = array('somebit' => '1', 'status' => 'Published', 'archived ' => TRUE );
$this->db->where($where);

Comments

    Ничего не найдено.