Я использую CodeIgniter 2.1.
У меня есть таблица с именами, фамилиями и другими столбцами.
Я хочу получить тех клиентов, у которых firstname like '%q%' OR lastname like '%q' AND Status = 1
Я использую следующий набор активных записей:
$this->db->select("$this->table.*, $this->table.Active as 'Status'");
$like = array(
"$this->table.FirstName" => $where['customer_name'],
"$this->table.LastName" => $where['customer_name']
);
$this->db->or_like($like);
Сгенерированный запрос:
SELECT `customers`.*, `customers`.`Active` as 'Status'
WHERE `customers`.`Active` = '1' AND
`customers`.`FirstName` LIKE '%michael%' OR
`customers`.`LastName` LIKE '%michael%'
ORDER BY `customers`.`RegDate` desc LIMIT 10
Приведенный выше запрос выводит тех клиентов, у которых «michael» либо по имени, либо по фамилии И active = 1, он возвращает все записи, в которых есть michael, либо они активны, либо нет.
Мне нужны записи, которые имеют «micheal» в имени или фамилии И active = 1, я знаю в пользовательском запросе, что если я добавлю предложение Like между маленькой скобкой '()', это даст мне желаемый результат.
Я хочу, чтобы вышеуказанный запрос был разобран как:
SELECT `customers`.*, `customers`.`Active` as 'Status'
WHERE `customers`.`Active` = '1' AND
(`customers`.`FirstName` LIKE '%michael%' OR
`customers`.`LastName` LIKE '%michael%')
ORDER BY `customers`.`RegDate` desc LIMIT 10