Codeigniter活动记录:类似和在SQL语句中的位置

Codeigniter活动记录:类似和在SQL语句中的位置,codeigniter,Codeigniter,我需要选择几个符合以下条件的行: 日期>=今天 关键字出现在字段1、2或3中 我想这方面的SQL语句应该是: SELECT * FROM `events` WHERE date >= '2010-09-12' AND (field1 LIKE '%keyword%' OR field2 LIKE '%keyword%' OR field3 LIKE '%keyword%') 我试图用codeigniter的活动记录来写这篇文章,但是类似的条件似乎覆盖了日期记录 $this->db-

我需要选择几个符合以下条件的行:

  • 日期>=今天
  • 关键字出现在字段1、2或3中
  • 我想这方面的SQL语句应该是:

    SELECT * FROM `events` WHERE date >= '2010-09-12' AND (field1 LIKE '%keyword%' OR field2 LIKE '%keyword%' OR field3 LIKE '%keyword%')
    
    我试图用codeigniter的活动记录来写这篇文章,但是类似的条件似乎覆盖了日期记录

    $this->db->select('*');
    $this->db->join('venues', 'events.venue = venue_id');
    
    //first condition: date >= today
    $this->db->where('date >=', date('Y-m-d'));
    
    if ($keyword)
    //if keyword is present, add this condition as well
    {
        $this->db->like('events.description', $keyword);
        $this->db->or_like('band', $keyword);
        $this->db->or_like('venues.venue', $keyword);
    }
    
    $this->db->order_by('date', 'ASC');
    $this->db->order_by('events.priority', 'DESC'); 
    $Q = $this->db->get('events');
    

    我可能需要在parentesis中插入LIKE语句,但不知道如何操作。

    我认为您必须以这种方式编写查询的“LIKE”部分:

    $this->db->select('*');
    $this->db->join('venues', 'events.venue = venue_id');
    
    if ($keyword)
    //if keyword is present, add this condition as well
    {
       $where = "( events.description LIKE '$keyword' OR band LIKE '$keyword' OR venues.venue LIKE '$keyword')";
       $this->db->where($where);
    
    }
    //first condition: date >= today
    $this->db->where('date >=', date('Y-m-d'));
    
    $this->db->order_by('date', 'ASC');
    $this->db->order_by('events.priority', 'DESC'); 
    

    我认为您必须以这种方式编写查询的“like”部分:

    $this->db->select('*');
    $this->db->join('venues', 'events.venue = venue_id');
    
    if ($keyword)
    //if keyword is present, add this condition as well
    {
       $where = "( events.description LIKE '$keyword' OR band LIKE '$keyword' OR venues.venue LIKE '$keyword')";
       $this->db->where($where);
    
    }
    //first condition: date >= today
    $this->db->where('date >=', date('Y-m-d'));
    
    $this->db->order_by('date', 'ASC');
    $this->db->order_by('events.priority', 'DESC'); 
    
    $Linkearray = array('page_content' => $search, 'page_title' => $search);
    $this->db->like($Linkearray);
    $this->db->where('page_online',1);
    $this->db->where('page_site',$page_site);
    
    // WHERE page_content LIKE '% my Text%' 
    // AND page_title LIKE '% my page title %' 
    // AND page_online = '1' and page_site ='29'