2011-10-09 11 views
5

ho bisogno di generare domanda del genere:Kohana 3 ORM confronta 2 colonne in cui la clausola

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

non riesco a trovare il modo di confrontare 2 colonne in Kohana ORM. Qui date2 è considerato come testo.

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

Come posso scrivere questa riga?

Grazie!

Maggiori informazioni:

Io lo uso per il 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

e perché non usare pure * SQL * via * PDO *? –

+0

cosa c'è di sbagliato in questo approccio '-> dove ('date1', '<', 'date2');'? – SET

risposta

3

Se non si vuole Kohana modificare la stringa, come farebbe con il 3 ° argomento nel DB in cui la funzione, puoi usare la funzione DB::expr() che lascerà ciò che passerai non modificata. Quindi, con il tuo esempio, potresti usare

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

grazie, funziona bene! –