2011-10-09 11 views
5

に2列を比較して、私はそのようなクエリを生成する必要があります。Kohanaの3 ORMは、where句

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

私はKohanaののORMに2列を比較する方法を見つけることができません。ここで、date2はテキストと見なされます。

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

この行はどのように記述できますか?

ありがとうございます!

さらに詳しい情報:

私は一瞬のためにこれを使用します。

$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

を使用することができ、* PDO *経由でpure * SQL *を使用しないのはなぜですか? –

+0

このアプローチで何が問題になっていますか? - >( 'date1'、 '<'、 'date2'); '? – SET

答えて

3

それはDBどこ関数内の第三引数と同じようにあなたは、Kohanaのは、文字列を変更したくない場合は、 DB::expr()関数を使用して、そのまま渡したものをそのまま残すことができます。したがって、あなたの例では、

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

ありがとうございます、うまく動作します! –