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


perform operation on SQL results with same reference

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

我的查询分解一个查询字符串,然后从字符串中为每个单词SELECT与该单词关联的所有引用 ID。

我有一种为每个查询词的每个 id 提供相关性分数的方法。但是,如果我的查询多次返回 id,我正在寻找一种跟踪的方法。谁能指出我正确的方向。我正在使用PHP和mySQL??

好吧,你可以使用 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。