0

テーブルブック:

subject  |  userid  |  flag
---------+----------+--------
math     |  abc     |  0
math     |  abc     |  0
english  |  xyz     |  0

useridflag = 0の数学科目の数を検索したい。

SQL ステートメントはどのように記述すればよいですか?

私は試したCOUNT(subject) AS math FROM books WHERE userid = 'abc' AND flag = '0';

うまくいきません。

4

2 に答える 2

2

mathのサブジェクトのみを取得する場合userid = 'abc' AND flag = '0'は、以下のクエリを使用できます。

SELECT COUNT(subject) AS math 
FROM books WHERE userid = 'abc' AND flag = '0' AND subject = 'math';

SQLFiddleをチェックしてください

それ以外の場合は、 のサブジェクトのみが必要な場合userid = 'abc' AND flag = '0'query指定された は完全にそれを行っています:

SELECT COUNT(subject) AS math 
FROM books WHERE userid = 'abc' AND flag = '0';

SQLFiddleをチェックしてください

php使用して表示するにはmysql_fetch_assoc、列名を指定して、次のように値にアクセスできます。

$sql = "SELECT COUNT(subject) AS math 
    FROM books WHERE userid = 'abc' AND flag = '0'";

$result = mysql_query($sql);

if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "No math subjects exist";
    exit;
}
while ($row = mysql_fetch_assoc($result)) {
    echo $row["math"];
}
于 2013-09-22T09:11:50.897 に答える
0

多分これ:

SELECT COUNT(subject) AS math
FROM books 
WHERE flag = '0'
GROUP BY userid
HAVING userid = 'abc';
于 2013-09-22T09:10:05.080 に答える