Мне нужно выбрать несколько строк, соответствующих этим условиям:
- дата> = сегодня
- ключевое слово присутствует в полях 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, но условие LIKE, похоже, переопределяет дату.
$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');
Возможно, мне нужно вставить инструкцию LIKE в парентез, но я не знаю, как это сделать.