我想运行一个查询是这样的:如何在CodeIgniter中使用LIKE查询?
SELECT * FROM table WHERE field LIKE '%search_term%'
在CI可以绑定参数查询,如果你使用field=?
但这并不为field LIKE "%?%"
工作。从调试输出看来,使用的查询是field LIKE "%'search'%"
。
是否有另一种方法在CodeIgniter中进行搜索?
我想运行一个查询是这样的:如何在CodeIgniter中使用LIKE查询?
SELECT * FROM table WHERE field LIKE '%search_term%'
在CI可以绑定参数查询,如果你使用field=?
但这并不为field LIKE "%?%"
工作。从调试输出看来,使用的查询是field LIKE "%'search'%"
。
是否有另一种方法在CodeIgniter中进行搜索?
您可以使用此查询:
SELECT * FROM table WHERE field LIKE ?
而且随着%search%
而不是search
结合。
你应该知道这个查询在MySQL中会很慢。您可能希望查看自由文本搜索(Lucene,Sphinx或MySQL内置的自由文本搜索功能)。
我能理解CI是加引号,传递FALSE作为第三个参数,同时绑定以防止CI添加引号。
这是笨活动记录类
$this->db->select('*');
$this->db->like('columnname','both');
$query=$this->db->get("tablesname");
$result=$query->result_array();
if(count($result))
{
return $result;
}
else
{
return FALSE;
}
你应该尝试this..I认为它帮助你.. 都意味着%COLUMNNAME%, 装置之前%列名, 手段后COLUMNNAME%
$search_term=$this->input->post('textboxName');
$search_term="%".$search_term."%";
$sql="SELECT * FROM table WHERE field LIKE ? ";
$query=$this->db->query($sql,array($search_term));
$res=$query->result();
这已经在7年前回答了。 – DisgruntledGoat 2017-04-20 11:57:09
是的。这是一个字符串在like子句中的情况的答案。但我在Like子句中查询变量的地方挣扎着。如果将其定义为%variable_name%,则它不起作用。我找到了解决方案。这就是我回答的原因。 – 2017-04-20 13:23:13
谢谢,这工作。这不是我脚本的主要部分,所以速度不是问题。 – DisgruntledGoat 2010-09-19 14:26:52
感谢您使用MySQL自由文本参考! – 2014-03-12 20:17:34