【问题标题】:Add Multiple Term Search to my current query将多词搜索添加到我当前的查询
【发布时间】:2012-10-24 02:11:30
【问题描述】:

我有一个基本的搜索引擎。在一个脚本中,它使用在 html 网页中扫描的单词填充 MYSQL 表。基于一个词搜索,它在网页中出现最多的词时对结果进行排名。

但我需要处理多个术语查询。有没有办法从下面的查询中搜索多个字词?

     $keyword = addslashes( $_POST['keyword'] );
     $results = addslashes( $_POST['results'] );

      /* Execute the query that performs the actual search in the DB: */

         $result = mysql_query(" SELECT p.page_url AS url,
                       COUNT(*) AS occurrences 
                       FROM page p, word w, occurrence o
                       WHERE p.page_id = o.page_id AND
                       w.word_id = o.word_id AND
                       w.word_word = \"$keyword\"
                       GROUP BY p.page_id
                       ORDER BY occurrences DESC
                       LIMIT $results" );

【问题讨论】:

    标签: php


    【解决方案1】:

    可能的解决方案我没有测试过。 将帖子关键字作为数组提交或将它们单独收集到一个数组中。

    然后要么先用 implode 将 $keyword 数组转换为字符串

    $keywords = implode(',', $_POST['keyword']);
    

    并使用

    w.word_word IN ($keywords)
    

    或者将内爆放入您的声明中。

    w.word_word IN (".implode(',', $keywords').")
    

    无论哪种方式,你最终都会读取 mysql

    w.word_word IN (keyword1, keyword2, keyword3 ...)
    

    参考: Select from mysql table WHERE field='$array'?

    http://data.agaric.com/mysql-where-1-4-5-syntax

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多