2011-10-09 18 views
5

necesito para generar consulta como la que:Kohana 3 ORM compara 2 columnas en la cláusula WHERE

SELECT * FROM `table1` WHERE `date1` < `date2` 

no puedo encontrar la manera de comparar 2 columnas en ORM kohana. Aquí date2 se considera como texto.

$foo = ORM::factory('model1')->where('date1','<','date2'); 

¿Cómo puedo escribir esta línea?

Gracias!

Más información:

lo uso para el momento:

$query = DB::query(Database::SELECT, "SELECT id FROM table1 WHERE `date1` < `date2`"); 
$result = $query->execute(); 

$foo = array(); 
foreach ($result as $r) { 
    $foo[] = ORM::factory("model1", $r['id']); 
} 
+0

y ¿por qué no utilizar pure * SQL * via * PDO *? –

+0

¿Qué hay de malo con este enfoque '-> where ('date1', '<', 'date2'); '? – SET

Respuesta

3

Si no quieren Kohana que modificar la cadena, como lo haría con la tercera argumento en la base de datos donde la función, puede usar la función DB::expr() que dejará lo que pase sin modificar. Entonces, con su ejemplo, puede usar

$foo = ORM::factory('model1')->where('date1','<',DB::expr('date2')); 
+0

gracias, funciona bien! –