[英]convert mysql query in codeigniter query
將MySQL查詢轉換為Codeigniter查詢
當前查詢:
$query = "SELECT a.*, b.cost AS future_cost, b.start_date AS future_date
FROM (
SELECT * FROM (
SELECT * FROM outbound_routes
ORDER BY start_date
) x
GROUP BY pattern
) a
LEFT JOIN (
SELECT * FROM outbound_routes
ORDER BY start_date
) b
ON a.pattern = b.pattern AND a.id != b.id
GROUP BY a.pattern";
$result=$this->db->query($query);
在粗體查詢中,我想附加搜索變量,例如
$this->db->where('pattern','1');
任何幫助和想法將不勝感激。
不幸的是,我認為不可能使用codeigniters 活動記錄類將where子句附加到現有SQL中。 活動記錄類只能處理表之間的簡單聯接。
要將其附加到現有查詢中,可以使用查詢綁定將變量傳遞給查詢。
$query = "SELECT a.*, b.cost AS future_cost, b.start_date AS future_date
FROM (
SELECT * FROM (
SELECT * FROM outbound_routes
ORDER BY start_date
) x
GROUP BY pattern
) a
LEFT JOIN (
SELECT * FROM outbound_routes
ORDER BY start_date
) b
ON a.pattern = b.pattern AND a.id != b.id
GROUP BY a.pattern
WHERE pattern = ?";
$result = $this->db->query($query, array(1));
試試這個
$this->db->select('select a.*, b.cost AS future_cost, b.start_date AS future_date');
$this->db->from('(select * from (select * from outbound_routes order by start_date) x group by pattern) a');
$this->db->join('(select * from outbound_routes order by start_date) b', 'a.pattern = b.pattern and a.id != b.id','left ');
$this->db->where('a.pattern','1');
$this->db->group_by("a.pattern");
$result=$query = $this->db->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.