2011-10-09 6 views
5

मुझे लगता है कि जैसी क्वेरी उत्पन्न करने के लिए की जरूरत है 2 कॉलम तुलना करती है। यहां दिनांक 2 को टेक्स्ट के रूप में माना जाता है।Kohana 3 ORM में जहां खंड

$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

और * पीडीओ * के माध्यम से शुद्ध * एसक्यूएल * का उपयोग क्यों नहीं कर सकते? –

+0

इस दृष्टिकोण के साथ क्या गलत है '-> कहां ('date1', '<', 'date2');'? – SET

उत्तर

3

आप नहीं Kohana स्ट्रिंग को संशोधित करने, के रूप में यह DB में 3 तर्क के साथ होता चाहते हैं जहां समारोह, आप DB::expr() फ़ंक्शन का उपयोग कर सकते हैं जो आपके द्वारा अनमोडिफाइड किए जाने वाले छोड़ देगा। तो आपके उदाहरण के साथ, आप

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

धन्यवाद, ठीक काम करता है! –