使用相同的引用对SQL结果执行操作

时间:2012-04-26 04:33:50

标签: php mysql search-engine

我正在构建一个有点搜索引擎的东西。

我的查询将查询字符串分开,然后为字符串中的每个单词SELECT分隔所有与该单词相关联的参考ID。

我有一种方法可以为每个查询字的每个ID提供相关性分数。但是,如果我的查询多次返回id,我正在寻找一种保持跟踪的方法。任何人都可以指出我正确的方向。我正在使用PHP和mySQL ??

1 个答案:

答案 0 :(得分:0)

好吧,您可以使用PHP或SQL来实现这一目标:

一个代码示例(没有错误检查,假设你直接使用mysql api - 你不应该这样做):

<?php
$sql = 'SELECT ...';
$result = mysql_query($sql);
$ids = array();
while ($row = mysql_fetch_object($result)) {
    $id = $row->id;
    if (array_key_exists($id, $ids)) {
        print 'id '. $id . ' exists';
        continue;
    }
    $ids[$id] = true;
}
?>

使用SQL你可以尝试一个HAVING语句,如下所示:

SELECT * FROM whatevs HAVING COUNT(id) > 1

由于我不知道您的表格布局,因此很难编写实际工作的代码/ SQL。