Odpytywanie MySQL za pomocą CodeIgniter, wybieranie wierszy, w których pole jest NULL
Używam klasy Active Record CodeIgniter do odpytywania bazy danych MySQL. Muszę wybrać wiersze w tabeli, w której pole nie jest ustawione na NULL:
$this->db->where('archived !=', 'NULL');
$q = $this->db->get('projects');
To zwraca tylko to zapytanie:
SELECT * FROM projects WHERE archived != 'NULL';
Pole archived
jest polem DATE
.
9 answers
where('archived IS NOT NULL', null, false)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-22 01:01:27
Active Record zdecydowanie ma pewne dziwactwa. Po przekazaniu tablicy do funkcji $this->db->where()
wygeneruje ona wartość IS NULL. Na przykład:
$this->db->where(array('archived' => NULL));
Produkuje
WHERE `archived` IS NULL
Dziwactwo polega na tym, że nie ma odpowiednika dla negatywu IS NOT NULL
. Istnieje jednak sposób, aby to zrobić, który daje poprawny wynik i nadal wymyka się stwierdzeniu:
$this->db->where('archived IS NOT NULL');
Produkuje
WHERE `archived` IS NOT NULL
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-09 17:29:39
Null nie może być ustawione na string...
$this->db->where('archived IS NOT', null);
Działa poprawnie, gdy null nie jest zawinięte w cudzysłowy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-27 17:00:41
CodeIgniter 3
Tylko:
$this->db->where('archived IS NOT NULL');
Wygenerowane zapytanie to:
WHERE archived IS NOT NULL;
$this - > db - > where ('zarchiwizowany nie jest NULL', null,false );
Odwrotność:
$this->db->where('archived');
Wygenerowane zapytanie to:
WHERE archived IS NULL;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-25 08:26:58
Znacznie lepiej używać następujących For is not null
Where ('zarchiwizowany nie jest NULL', null);
For is null
Where ('zarchiwizowany', null);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-24 11:40:05
I aby dać ci jeszcze jedną opcję, możesz użyć NOT ISNULL(archived)
jako filtra gdzie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-03 20:22:59
Codeigniter generuje zapytanie "IS NULL" po prostu pozostawiając wywołanie bez parametrów:
$this->db->where('column');
Wygenerowane zapytanie to:
WHERE `column` IS NULL
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-07 05:31:50
$this - > db - > or_where ('end_date IS', 'NULL', false);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-03 14:31:04
Jednym ze sposobów, aby sprawdzić, które kolumny są null lub nie jest
$this->db->where('archived => TRUE);
$q = $this->db->get('projects');
W php jeśli kolumna ma DANE, może być reprezentowana jako True, w przeciwnym razie False Aby użyć polecenia multiple comparison w where I sprawdzić, czy dane kolumn nie są null do it like
Oto pełny przykład filtrowania kolumn w klauzuli where (Codeignitor). Ostatni pokazuje nie NULL kompresję
$where = array('somebit' => '1', 'status' => 'Published', 'archived ' => TRUE );
$this->db->where($where);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-14 06:23:36