CodeIgniter Active Record不相等

mat*_*att 51 php codeigniter

在使用活动记录的CodeIgniter中,如何执行不等于in $this->db->where().例如:

$this->db->where('emailsToCampaigns.campaignId', $campaignId);
Run Code Online (Sandbox Code Playgroud)

将等于,但我不必等于.我试过了:

$this->db->where('emailsToCampaigns.campaignId <> ', $campaignId);
$this->db->where('emailsToCampaigns.campaignId != ', $campaignId);
$this->db->where('emailsToCampaigns.campaignId', ' != ' . $campaignId);
$this->db->where('emailsToCampaigns.campaignId != ' . $campaignId);
Run Code Online (Sandbox Code Playgroud)

一切都没有运气.想法?

Kev*_*eno 79

根据手册,这应该工作:

自定义键/值方法:

您可以在第一个参数中包含运算符以控制比较:

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

搜索$this->db->where();并查看项目#2.

  • **小注意:字段名称和运算符之间必须有空格(如上例所示)**.我在尝试没有在字段名称和运营商之间留出空间.它不起作用. (6认同)

nir*_*iro 17

同样的事情发生在我身上.我没有在操作员面前放置空间.可能是你得到了同样的错误.

$this->db->where("id !=",$id);
Run Code Online (Sandbox Code Playgroud)


Rah*_*ham 16

它对我很好,

$this->db->where("your_id !=",$your_id);
Run Code Online (Sandbox Code Playgroud)

或试试这个,

$this->db->where("your_id <>",$your_id);
Run Code Online (Sandbox Code Playgroud)

或试试这个,

$this->db->where("your_id IS NOT NULL");
Run Code Online (Sandbox Code Playgroud)

一切都会奏效.


Eug*_*eph 10

试试这个代码.这似乎适用于我的情况.

$this->db->where(array('id !='=> $id))
Run Code Online (Sandbox Code Playgroud)


jon*_*ohn 9

$this->db->where('emailsToCampaigns.campaignId !=' , $campaignId);
Run Code Online (Sandbox Code Playgroud)

这应该工作(你试过)

要进行调试,您可以在执行查询后立即放置此代码以查看它生成的确切SQL,这可能会为您提供线索,您可以将其添加到问题中以获得进一步的帮助.

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

echo '<pre>';                  // to preserve formatting
die($this->db->last_query());  // halt execution and print last ran query.
Run Code Online (Sandbox Code Playgroud)