Php 使用CodeIgniter在数据库中搜索精确单词
我正在筛选一些数据,我有一个领域叫做“教员”,选项是“教授、副教授、研究教授”。。。等等。我的过滤适用于所有其他领域,但对于这个特定的案例,我遇到了麻烦,因为教授这个词出现在所有数据中,因此,我得到了所有与“教授”这个词匹配的数据,所以它没有过滤任何东西。我怎样才能做到只搜索特定的单词“教授”,而不搜索其他所有单词(研究教授、副教授 //我的代码Php 使用CodeIgniter在数据库中搜索精确单词,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在筛选一些数据,我有一个领域叫做“教员”,选项是“教授、副教授、研究教授”。。。等等。我的过滤适用于所有其他领域,但对于这个特定的案例,我遇到了麻烦,因为教授这个词出现在所有数据中,因此,我得到了所有与“教授”这个词匹配的数据,所以它没有过滤任何东西。我怎样才能做到只搜索特定的单词“教授”,而不搜索其他所有单词(研究教授、副教授 //我的代码 function get_search_filters($limit, $start, $search_faculty) { $this-&
function get_search_filters($limit, $start, $search_faculty)
{
$this->db->order_by('lname', 'asc'); //order records by last name
$this->db->limit($limit, $start);
/* search keyword in all columns*/
$this->db->like('faculty', $search_faculty);
$query = $this->db->get('expertise');
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
使用
where
而不是像那样使用。在表格中添加一列“title\u id”,例如professor=0 research professor=1等。。。然后添加where子句以过滤所需的标题谢谢,我完全忘记了“where”存在一些例外情况,但一般来说,where
在索引字段上的性能要比like
好得多
$this->db->order_by('lname', 'asc'); //order records by last name
$this->db->limit($limit, $start);
$this->db->where('faculty', $search_faculty);
$query = $this->db->get('expertise');