如何查询像多个关键字
问题描述:
我有一个查询来搜索内容表中找到一些关键字行。(笨)如何查询像多个关键字
我有一个列来存储关键字(省名)。
我有一个主要省份和相关省份,我应该搜索它们。
我有一个关键字数组,并不清楚它有多少个索引。
所以,我怎么可以搜索包含多个关键字
的内容,这是我的模型查询
public function province($province_name,$provinces_name,$language)
{
$ps_name = str_replace("-", " ", $provinces_name);
$lang=$language;
$data = $this->db
->select('*')
->from('content')
->where("language",$lang)
->where("keywords",$province_name)
->or_like("keywords","%$ps_name%")
->limit("14")
->order_by("id","DESC")
->get();
if ($data->num_rows > 0) {
return $data->result();
} else{
return false;
}
}
答
如果您有关键字的数组,你想成为在一次搜索每个关键字,你可以在一个循环中使用$this->db->or_like()
。尝试下面的代码:
$keywords = array("keyword1",
"keyword2",
"keyword3",
);
foreach($keywords as $k)
{
$this->db->or_like("keywords", $k);
}
$this->db->where("language", $lang);
$this->db->limit("14");
$this->db->order_by("id", "DESC");
$query = $this->db->get("content");
但我如何使用foreach进入查询? –
- >选择( '*')\t \t \t \t \t \t - >从( 'noor_content')\t \t \t \t \t \t的foreach($ provinces_name为$ K) { - > or_like( “关键字”,$ķ ); } \t \t \t \t \t \t - >在哪里( “语言”,$ LANG) - >在哪里( “关键词”,$ province_name) - >限制( “14”) \t \t \t \t \t \t - > order_by(“id”,“DESC”) \t \t \t \t \t - > get(); –
当前您正在使用链接方法来构建查询。您可以按照上面所做的来打破您的查询。循环遍历'or_like'将创建一个'or_like-wildcards-keyword'链。 –