2011-03-07 109 views
43

在使用活動記錄的CodeIgniter中,如何執行不等於$this->db->where()。例如:CodeIgniter活動記錄不等於

$this->db->where('emailsToCampaigns.campaignId', $campaignId); 

會做等於,但我不需要等於。我曾嘗試過:

$this->db->where('emailsToCampaigns.campaignId <> ', $campaignId); 
$this->db->where('emailsToCampaigns.campaignId != ', $campaignId); 
$this->db->where('emailsToCampaigns.campaignId', ' != ' . $campaignId); 
$this->db->where('emailsToCampaigns.campaignId != ' . $campaignId); 

所有沒有運氣。想法?

回答

7
$this->db->where('emailsToCampaigns.campaignId !=' , $campaignId); 

這應該工作(你都試過)

要調試你可能把你執行查詢後立即看到它是生產什麼確切的SQL這段代碼,這可能會給你線索,你可能再加上這個問題以獲得進一步的幫助。

$this->db->get();    // your query executing 

echo '<pre>';     // to preserve formatting 
die($this->db->last_query()); // halt execution and print last ran query. 
+0

假設這是第一行中的逗號,您有一段時間(concat)。 – jondavidjohn 2011-03-07 23:04:11

72

根據手冊這應該工作:

自定義鍵/值方法:

可以包括在第一個參數的操作,以便控制所述比較:

$this->db->where('name !=', $name); 
$this->db->where('id <', $id); 
Produces: WHERE name != 'Joe' AND id < 45 

搜索$this->db->where();並查看項目#2。

+6

**小注:空格必須在字段名稱和操作符之間(如上例所示)**。我試圖在域名和運營商之間不給空間。它沒有工作。 – 2014-12-21 07:28:32

12

同樣的事情發生在我身上。我沒有把空間放在操作員面前。也許你會得到同樣的錯誤。

$this->db->where("id !=",$id); 
8

試試看看這個代碼。 這似乎適用於我的情況。

$this->db->where(array('id !='=> $id)) 
9

它好工作與我,

$this->db->where("your_id !=",$your_id); 

或者試試這一個,

$this->db->where("your_id <>",$your_id); 

或者試試這一個,

$this->db->where("your_id IS NOT NULL"); 

一切都將正常工作。