【问题标题】:searching keywords with dynamic query使用动态查询搜索关键字
【发布时间】:2016-04-05 07:23:06
【问题描述】:

需要快速帮助。 我正在为关键字创建一个动态 MySQL 查询,并且只想搜索那些超过 3 个字符的关键字。我创建了查询,但我不知道如何只搜索三个以上的字符? 这是我写的查询

$returned_results = array ();
        $where = "";

        $keywords = preg_split('/[\s]+/', $keywords);
        $total_keywords = count($keywords);

        foreach ($keywords as $key=>$keyword)
        {
            $where .= "keywords LIKE '%$keyword%'";
            if ($key != ($total_keywords - 1))
                $where .= " OR ";
        }


    $query = "SELECT title, url FROM pages WHERE $where";

【问题讨论】:

  • saleem 不仅提出问题,还尝试检查答案并将其标记为正确并投票赞成。谢谢

标签: mysql dynamic


【解决方案1】:

在 where 子句中添加以下代码

and CHAR_LENGTH('keywords') > 3

使用此子句,您可以获得关键字长度超过 3 的行

【讨论】:

    【解决方案2】:

    您可以使用strlen 过滤长度大于 3 个字符的关键字。

    foreach ($keywords as $key=>$keyword){
        if(strlen($keyword) > 3){
                $where .= "keywords LIKE '%$keyword%'";
                if ($key != ($total_keywords - 1))
                    $where .= " OR ";
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-14
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多