如何使用CodeIgniter的LIKE查询?

时间:2010-09-19 14:12:21

标签: mysql codeigniter sql-like

我想运行这样的查询:

SELECT * FROM table WHERE field LIKE '%search_term%'

在CI中,如果您使用field=?,则可以将参数绑定到查询,但这对field LIKE "%?%"不起作用。从调试输出看来,使用的查询似乎是field LIKE "%'search'%"

有没有其他方法可以在CodeIgniter中进行搜索?

4 个答案:

答案 0 :(得分:17)

您可以使用此查询:

SELECT * FROM table WHERE field LIKE ?

%search%而不是search绑定。

你应该知道这个查询在MySQL中会很慢。您可能希望查看自由文本搜索(Lucene,Sphinx或MySQL的内置自由文本搜索功能)。

答案 1 :(得分:2)

这是codeigniter的活动记录类

$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;
}

你应该试试这个..我认为它可以帮到你.. 两者都意味着%columnname%, 之前表示%columnname, after表示列名%

答案 2 :(得分:1)

System.Runtime.Serialization.Primitives, Version=4.1.1.0,
  Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' matches assembly
  

答案 3 :(得分:0)

我能理解CI是添加引号,在绑定时传递FALSE作为第三个参数以防止CI添加引号。