是否可以將組和_where/or_where/or_like ...語句放在一起以免與其他語句和/ where語句混合使用。Codeigniter Active Record'where_or'分組
東西會導致
WHERE城市= '我的城市' 和國家= '我的狀態' AND(名稱LIKE%名稱1% 或名稱LIKE%名2%)
是否可以將組和_where/or_where/or_like ...語句放在一起以免與其他語句和/ where語句混合使用。Codeigniter Active Record'where_or'分組
東西會導致
WHERE城市= '我的城市' 和國家= '我的狀態' AND(名稱LIKE%名稱1% 或名稱LIKE%名2%)
是。 $this->db->where()
允許您手動編寫子句。您可以這樣做:
$this->db->where('city', 'My City');
$this->db->where('state', 'My State');
$this->db->where('(name LIKE %name1% OR name LIKE %name2%)', null, false);
將第三個參數設置爲false可防止CodeIgniter嘗試向子句中添加反引號。
退房的Active Record documentation。區段標題$這 - > DB->其中();解釋了你可以用它來設置WHERE子句的四種方法。
我知道這是有點晚了,但我發現這個職位尋找到它的時候,發現不是由肖恩提出了一個更好的解決方案。
$name = 'Bob';
$this->db->where('city', 'My City');
$this->db->where('state', 'My State');
$this->db->group_start();
$this->db->like('name', $name);
$this->db->or_like('name', $name);
$this->db->group_end();
此解決方案適用於Codeigniter 3+,但不適用於Codeigniter 2 – semsem 2016-01-19 09:35:29
這兩個函數group_start()
和group_end()
已經在已經實現笨3.0.3。根據原始問題,這裏的實施情況稍微好一些。
$name1 = 'Bob';
$name2 = 'John';
$this->db->where('city', 'My City');
$this->db->where('state', 'My State');
$this->db->group_start();
$this->db->like('name', $name1);
$this->db->or_like(('name', $name2);
$this->db->group_end();
太棒了,我錯過了第三個參數 – kilrizzy 2012-01-05 19:27:47