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

GROUPBYを使用します。

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 に答える