在MySQL中搜索字符串WHERE字符串LIKE字符串(用括号括起来)

时间:2018-06-05 09:34:29

标签: php mysql pdo

我正在尝试使用PDO返回搜索字词,其中一些字符串包含在()中,并且在搜索时它们没有显示。

以我在Strawberry (Ripe)

时显示的(r为例

enter image description here

但是当我不这样做时:

enter image description here

是否有任何方法可以匹配括号内的字符串,以便更有效地进行搜索。

我当前的代码:

public function getAllFlavoursSearch($search) {
    $query = "SELECT flavour_name, flavour_company_name FROM flavours WHERE flavour_name LIKE :search OR flavour_name LIKE :search2 OR flavour_name LIKE :search3 OR flavour_company_name LIKE :search4 LIMIT 0,100";
    $stmt = $this->queryIt($query);
    $stmt = $this->bind(':search', $search. '%', PDO::PARAM_STR);
    $stmt = $this->bind(':search2', '%' .$search, PDO::PARAM_STR);
    $stmt = $this->bind(':search3', '%('.$search.')%', PDO::PARAM_STR);
    $stmt = $this->bind(':search4', '%('.$search.')%', PDO::PARAM_STR);
return $this->resultset();

1 个答案:

答案 0 :(得分:1)

有一条捷径。 MATCH()函数。将您的查询更改为此。

$query = "SELECT flavour_name, flavour_company_name FROM flavours WHERE MATCH(`flavour_name`, `flavour_name`, `flavour_company_name`) AGAINST (:search) LIMIT 0,100";