Mysql 如何使用CodeIgniter的LIKE查询?
我想运行如下查询:Mysql 如何使用CodeIgniter的LIKE查询?,mysql,codeigniter,sql-like,Mysql,Codeigniter,Sql Like,我想运行如下查询: SELECT * FROM table WHERE field LIKE '%search_term%' 在CI中,如果使用了字段=?,则可以将参数绑定到查询,但这不适用于字段,如“%?%”。从调试输出来看,使用的查询似乎是类似“%”搜索“%”的字段 是否有其他方法在CodeIgniter中进行搜索?您可以使用以下查询: SELECT * FROM table WHERE field LIKE ? 并使用%search%而不是search进行绑定 您应该知道,在MySQL
SELECT * FROM table WHERE field LIKE '%search_term%'
在CI中,如果使用了字段=?
,则可以将参数绑定到查询,但这不适用于字段,如“%?%”
。从调试输出来看,使用的查询似乎是类似“%”搜索“%”的字段
是否有其他方法在CodeIgniter中进行搜索?您可以使用以下查询:
SELECT * FROM table WHERE field LIKE ?
并使用%search%
而不是search
进行绑定
您应该知道,在MySQL中,这个查询的速度会很慢。您可能想改为查看自由文本搜索(Lucene、Sphinx或MySQL的内置自由文本搜索功能)。我能理解的CI是添加引号,在绑定时将FALSE作为第三个参数传递,以防止CI添加引号。这是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%,
before表示%columnname,
after意味着columnname%谢谢,这很有效。这不是我脚本的主要部分,因此速度不是问题。感谢您提供MySQL免费文本参考!对这是一个在like子句中使用字符串的情况的答案。但我在查询Like子句中的where变量时遇到了困难。如果将其定义为%variable\u name%,则它不起作用。我找到了解决办法。这就是我回答的原因。
$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();