2010-09-26 13 views
13

E 'possibile con Kohana v3 Query Builder utilizzare l'operatore IS NOT NULL?"WHERE column IS NOT NULL" con Kohana v3 Query Builder

La dove ($ colonna, $ op, $ value) metodo richiede che tutti e tre i parametri e anche se a specificare

->where('col', 'IS NOT NULL', '') 

si costruisce e non validi di query ad es.

SELECT * FROM table WHERE col IS NOT NULL ''; 
+3

v3 va bene. e tu eri così vicino! Tutto quello che dovevi fare era spostare il NULL sull'argomento value: '-> where ('col', 'IS NOT', NULL)' – SpadXIII

+0

Ora che v3 ha documenti migliori e ho avuto la possibilità di abituarmi mi sto divertendo a fondo. – JeremyFelix

risposta

23

L'operatore non è sfuggito:

->where('col', 'IS NOT', NULL) 

Non c'è bisogno di utilizzare DB :: expr, Kohana supporta già quello che vuoi.

3

Non sono sicuro (è 03:00 in questo momento), ma ->where('col', '', DB::expr('IS NOT NULL')) lavori potrebbe.

+0

GENIUS. Lei, signore, sei un santo. – JeremyFelix

+0

Penso che sia meglio mettere 'NON È' come secondo argomento e il valore è solo NULL. Proprio come ha risposto Gerry. Usare un DB :: expr è bello, ma aggiunge un sovraccarico extra non necessario (in questo caso) – SpadXIII

+2

Sì, la soluzione migliore è -> dove ('col', 'IS NOT', NULL) – JeremyFelix

9

Questo funziona con il modulo ORM ed è un po 'meno di battitura.

->where('col', '!=', NULL); 
+0

Funziona davvero? Qual è la query prodotta? –

-1

Questo dovrebbe funzionare:

->where('col', '=', NULL); 
+0

questa volta l'hai perso :) – Kemo

+0

Questo è il controllo del valore è nullo, l'OP voluto non è nullo. –

0

La clausola WHERE accetta 3 argomenti, il 1 ° e il 3 ° che vengono sempre tentati di essere convertiti nel formato backticks (ad esempio `table` .field`). Finché si fornisce il DB :: Espr su almeno il 3 ° argomento, si può farla franca senza lasciare nulla in 1 ° e 2 ° args e il seguente dovrebbe funzionare così:

->where('', '', DB::Expr('!isNull(col)')); 

Ciò è confermato per lavorare su Kohana 3.2 e versioni successive.

Problemi correlati