2

我引用了一个收集简单信息的简单数据库。创建相同条目的可能性很高。

$sql = "INSERT INTO track_table (sitename, affiliate, refferal) values ('$sitename', '$affiliate', '$refferal')";

在单独的页面上,我拉出一份报告

$result = $mysqli->query("SELECT sitename, affiliate, refferal FROM track_table") 
    or die("Problem executing query.");
    print "<table border=1>\n";
    print "<tr><td><b>SITENAME</b></td><td><b>AFFILIATE</b></td><td><b>REFFERAL</b></td></tr>";
    while ($row = $result->fetch_array()) {
        echo "<td>", $row['sitename'], "</td><td>", $row['affiliate'], "</td><td>", $row['refferal'], "</td></tr>\n"; 
    }
echo "</table>\n";

这输出

SITENAME ------------ AFFILIATE ------------- REFFERAL

foo.com ---------------12345------------------bar.com

foo.com ---------------12345------------------bar.com

abc.com ---------------98765------------------xyz.com

如您所见,我可以有 2 个相同的条目。有没有办法可以计算出 1 和 2 完全相同,所以不显示它们,但可能在显示 (2) 的新列中

SITENAME ------------ AFFILIATE ------------- REFFERAL-------COUNT

foo.com ---------------12345------------------bar.com---------(2)

abc.com ---------------98765------------------xyz.com---------(1)
4

2 回答 2

2

使用分组:

SELECT sitename, affiliate, refferal, COUNT(*) AS cnt
FROM track_table
GROUP BY sitename, affiliate, refferal

如果您不需要 count 列,则可以SELECT DISTINCT改用:

SELECT DISTINCT sitename, affiliate, refferal
FROM track_table
于 2012-07-18T21:20:08.293 回答
1

在您的 2 列上添加一个唯一键,并将您的查询更改为:

INSERT IGNORE INTO

并在创建时添加一个验证器,该验证器将检查您要插入的值是否存在于您的表中。

于 2012-07-18T21:21:44.450 回答