2011-10-09 30 views
5

tôi cần phải tạo ra truy vấn như thế:Kohana 3 ORM so sánh 2 cột trong mệnh đề where

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

tôi không thể tìm cách so sánh 2 cột trong Kohana ORM. Ở đây date2 được coi là văn bản.

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

Tôi có thể viết dòng này bằng cách nào?

Cảm ơn! Thông tin

thêm:

tôi sử dụng này cho thời điểm này:

$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

và tại sao không sử dụng * SQL * tinh khiết thông qua * PDO *? –

+0

những gì là sai với phương pháp này '-> ở đâu ('date1', '<', 'date2');'? – SET

Trả lời

3

Nếu bạn không muốn Kohana để sửa đổi các chuỗi, vì nó làm với đối số thứ 3 trong DB nơi chức năng, bạn có thể sử dụng chức năng DB::expr() sẽ để lại những gì bạn vượt qua chưa được sửa đổi. Vì vậy, với ví dụ của bạn, bạn có thể sử dụng

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

cảm ơn, hoạt động tốt! –

Các vấn đề liên quan