Codeigniter $this->db->where() 函数 concat "IS NULL" 在使用 find_in_set() 函数时自动查询

Posted

技术标签:

【中文标题】Codeigniter $this->db->where() 函数 concat "IS NULL" 在使用 find_in_set() 函数时自动查询【英文标题】:Codeginter $this->db->where() function concating "IS NULL" in query automatically when using find_in_set() function 【发布时间】:2013-07-04 21:35:57 【问题描述】:

我正在使用FIND_IN_SET() 函数在codeigniter 中编写查询。

   $this->db->where(FIND_IN_SET('".$value."',employer_job_location));
    $query_res= $this->db->get("employer_posted_jobs");
   echo $this->db->last_query(); exit;

它正在屈服

SELECT * 
FROM (`employer_posted_jobs`) 
WHERE (FIND_IN_SET('Delhi',employer_job_location)) IS NULL

在上面的查询中,“IS NULL”是多余的,很烦人。 谁能说出为什么会出现这个查询? 谢谢。。

【问题讨论】:

可以this 帮忙吗? 代码很好,但我使用的是表中的列名,我无法在列名中添加转义函数 【参考方案1】:

您必须始终检查 FIND_IN_SET() 函数的结果以使其工作,试试这个:

$this->db->where("FIND_IN_SET('$value',employer_job_location) !=", 0);

【讨论】:

感谢您的回答,但是,它使用的语法略有不同: $this->db->where(FIND_IN_SET('".$value."',employer_job_location) !=0); 你总是可以做$this->db->where(sprintf("find_in_set('%d', employer_job_location) !=",$value), 0); 您能否建议任何有关此的参考以深入了解它。 @MichaelK @ankit suthar:您可以在此处找到 mysql find_in_set 函数的文档:dev.mysql.com/doc/refman/5.7/en/… 其余只是 Codeigniters 查询生成器类的基本语法:codeigniter.com/user_guide/database/…【参考方案2】:

$this->db->where("FIND_IN_SET('$value',employer_job_location) !=", 0);

【讨论】:

以上是关于Codeigniter $this->db->where() 函数 concat "IS NULL" 在使用 find_in_set() 函数时自动查询的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter $this->db->get(),我如何返回特定行的值?

Codeigniter 4 中 $this->db->last_query() 的等价物是啥?

CodeIgniter 中有类似 $this->db->matched_rows() 的东西吗?

codeigniter 使用

交易过程中的Codeigniter异常,会发生什么?

CodeIgniter:如何将 $this->db->insert_id() 值传递给控制器​​以便插入另一个表?