0

PHPMYSQLでこの問題が発生しましたこれは私のデータベースサンプルです

id word email
1  Helo jon@gmail.com
2  Sim  jon@gmail.com
3  Sam  jon@gmail.com
4  Mac  mars@gmail.com
5  Mimic mars@gmail.com

ここで私が解決しようとしていたのは、たとえばOUTPUT Webページのように、同じ電子メールで電子メールをカウントするにはどうすればよいかということです。

id word email          submitted words dictionary
1  Helo jon@gmail.com        3         regular
2  Sim  jon@gmail.com        3         regular
3  Sam  jon@gmail.com        3         regular
4  Mac  mars@gmail.com       2         regular
5  Mimic mars@gmail.com      2         regular

送信された単語は、電子メールの数です。同じメールをカウントして出力するために、PHPでどのように解決できますか...

4

4 に答える 4

1

このクエリを使用します:

SELECT email, COUNT(*) AS nb_emails
FROM your_table
GROUP BY `email`

テーブル内の電子メールごとに、関連するレコードの数が返されます。

mysql_ *関数を使用している場合は、そのコードを使用してすべての値をフェッチできます。

$sql = "SELECT email, COUNT(*) AS nb_emails
          FROM your_table
          GROUP BY `email`";
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res))
{
    // do something with the values of the last fetched record. The values are stored in $row['email'] and $row['nb_emails']
}

注:MySQL拡張機能の使用はお勧めしません。代わりに、MySQLiまたはPDO_MySQL拡張機能を使用する必要があります。詳細については、MySQL:APIガイドの選択および関連するFAQも参照してください。

于 2012-08-10T09:55:43.853 に答える
0

使用mysql_num_rows()例:

//mysql_connect() & mysql_select_db()    
$q=mysql_query("SELECT * FROM tablename WHERE email='jon@gmail.com'");
$count=mysql_num_rows($q); //3
于 2012-08-10T09:54:39.030 に答える
0

これを試して:

SELECT a.ID, a.Word, a.Email, b.SubmittedWords
FROM   myTable a INNER JOIN
        (
            SELECT email, COUNT(*) SubmittedWords
            FROM mytable
            GROUP BY email
        ) b
            ON a.email = b.email
于 2012-08-10T09:57:09.967 に答える
0

これを使って:

select email,
count(email) as count_same
from table_users
group by email
having ( count(email) > 1 );
于 2012-08-10T09:57:21.807 に答える