2010-09-26 12 views
13

¿Es posible con Kohana v3 Query Builder utilizar el operador IS NOT NULL?"WHERE column IS NOT NULL" con Kohana v3 Query Builder

El donde (columna $, $ op, valor $) método requiere que todos los tres parámetros y aunque especifique

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

se acumula y no válidos consulta por ejemplo.

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

v3 está muy bien. ¡y estabas tan cerca! Todo lo que tenía que hacer, era mover el NULL para el valor del argumento: '-> donde ('col', 'no es', NULL)' – SpadXIII

+0

Ahora que v3 tiene mejores documentos y he tenido la oportunidad de acostumbrarse a Lo-- Lo estoy disfrutando completamente. – JeremyFelix

Respuesta

23

El operador no se escapó:

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

No hay necesidad de usar DB :: expr, Kohana ya es compatible con lo que quiere.

3

No estoy seguro (son las 3 AM en este momento) pero ->where('col', '', DB::expr('IS NOT NULL')) podría funcionar.

+0

GENIUS. Usted señor, es un santo. – JeremyFelix

+0

Creo que es mejor poner el 'IS NOT' como el segundo argumento y el valor simplemente como NULL. Al igual que Gerry respondió. El uso de un DB :: expr es agradable, pero añade innecesaria sobrecarga adicional (en este caso) – SpadXIII

+2

Sí la mejor solución es -> donde ('col', 'no', NULL) – JeremyFelix

9

Esto funciona con el módulo de ORM y es un poco menos escribir.

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

¿Esto realmente funciona? ¿Cuál es la consulta producida? –

-1

Esto debería funcionar:

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

perdió u esta vez :) – Kemo

+0

Eso es la comprobación del valor es nulo, OP quería no es nulo. –

0

La cláusula WHERE toma 3 argumentos, el 1º y 3º que siempre se trató de ser convertido en el formato de acentos abiertos (es decir, `table`.`field`). Mientras usted indica el DB :: Expr sobre al menos la tercera argumentación, puede salirse con la suya sin dejar nada en 1ª y 2ª args y la siguiente debe funcionar tan bien:

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

Esto es confirmado para trabajar en Kohana 3.2 y superior.