2011-01-31 135 views
0

我试图使用代码点火器的活动记录类,看起来像这样建立一个查询:代码点火器查询:如何建立这个查询

SELECT * from contacts where account = 1 and (fname like 'k%' or lname like 'k%')

但我不知道如何使用功能做这个。

和想法?

回答

1

您还可以使用类似的查询

$this->db->like('title', 'match'); 

// Produces: WHERE title LIKE '%match%' 

而且or_like

$this->db->like('title', 'match'); 
$this->db->or_like('body', $match); 
+0

+1对于笨的活动记录提供了类似的功能。这比在select语句中编写喜欢要容易得多。 – 2011-02-01 23:25:01

3
$this->db->where('account', '1'); 
$this->db->where(' (fname LIKE "k%" OR lname LIKE "k%") '); 
$query = $this->db->get('contacts'); 

然后就像正常的Codeigniter数据库结果一样处理$query

0

呦可以八方通运行它作为一个正常的查询:

$sql = "SELECT * from contacts where account = 1 and (fname like ? or lname like ?)"; 
$query = $this->db->query($sql, array($like1, $like2)); 

我用更多的时候这比活跃的记录类,因为我热衷于编写sql语句。

0

而不是使用正常的查询,你可以使用来自ellislab论坛https://ellislab.com/forums/viewthread/185983/ 而不是使用

$this->db->like('location', $your_string); 

使用建议:

$this->db->where('location LIKE', '%'.$your_string.'%'); 

or_where,而不是or_like

0

您可以使用查询分组从CI 3.0

$this->db->select('*')->from('contacts ') 
    ->group_start() 
      ->like('fname', 'k', 'after'); 
      ->or_like('lname', 'k', 'after'); 
    ->group_end() 
    ->where('account', 1) 
->get();