CodeIgniter ActiveRecord Query - PullRequest
       0

CodeIgniter ActiveRecord Query

4 голосов
/ 04 февраля 2011

У меня есть следующий код:

$this->db->from('addresses');
$this->db->where('user_id', $this->session->userdata('user.id'));
$this->db->like('country',    $pSearch); 
$this->db->or_like('state',   $pSearch); 
$this->db->or_like('city',    $pSearch); 
$this->db->or_like('zip',    $pSearch); 

, который генерирует следующий SQL

SELECT *
FROM (`addresses`)
WHERE `user_id` = '1'
AND  `country`  LIKE '%d%'
OR  `state`  LIKE '%d%'
OR  `city`  LIKE '%d%'
OR  `zip`  LIKE '%d%'
ORDER BY `country` asc
LIMIT 15

Есть ли способ заставить его генерировать это так:

SELECT *
FROM (`addresses`)
WHERE `user_id` = '1'
AND  (`country`  LIKE '%d%'
OR  `state`  LIKE '%d%'
OR  `city`  LIKE '%d%'
OR  `zip`  LIKE '%d%')
ORDER BY `country` asc
LIMIT 15

Поскольку я хочу получить только записи для user_id = 1, а не для всех пользователей.

1 Ответ

2 голосов
/ 04 февраля 2011

Это похоже на ошибку / ограничение в CI ActiveRecord.Вы можете попробовать Ignited Query , который может обрабатывать вложенные предложения WHERE и, вероятно, может обрабатывать вложенные WHERE/LIKE так, как вам нравится.

Проверьте эту тему также для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...