簡體   English   中英

如何查詢多個關鍵字

[英]how to query like for more than one keyword

我有一個查詢來搜索內容表以查找帶有一些關鍵字的行。(codeigniter)

我有一欄來存儲關鍵字(省名)。

我有一個主要省份和相關省份,我應該搜索它們。

我有一個關鍵字數組,目前尚不清楚它有多少個索引。

所以我如何用多個關鍵字搜索內容

這是我在模型中的查詢

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

不確定特定於CI的實現,但是如果您要使用多個關鍵字執行類似搜索的功能,則可以查看MySQL的全文本搜索 (對於InnoDB或MyIASM)。 還是這里的一個很好的教程。

如果你有一個關鍵字的數組,你想一次搜索每個關鍵字,您可以用$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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM