- 締切済み
mysqlのcountの挙動
mysqlのcountの挙動について教えてください! tableの内容 id,temp_id,sex,create_date 1,aaa,1,2009-01-01 00:00:00 2,bbb,1,2009-01-02 00:00:00 3,bbb,1,2009-01-02 00:00:00 4,ccc,1,2009-01-03 00:00:00 5,ccc,1,2009-01-03 00:00:00 6,ccc,1,2009-01-03 00:00:00 実現したいことは単純で日付を参照し 2009-01-01であればsex=1は1件 2009-01-02であればsex=1は2件 2009-01-03であればsex=1は3件 と表示させたくforeach内で以下のソースで試したのですがうまく取得 できず任意の日付が2009-01-03であっても結果が1となってしまいます。 ※$val2には任意のY-m-d形式の配列の値が入ります。 $res =& $mdb2->query("SELECT Count(sex) AS cnt FROM table WHERE DATE_FORMAT(create_date, '%Y-%m-%d') = '" . mysql_real_escape_string($val2) . "' && sex = '" . mysql_real_escape_string(1) . "' GROUP BY temp_id"); while ($row = $res->fetchRow()) { $data[$key]['man'] = $row['cnt']; }
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tany180sx
- ベストアンサー率63% (239/379)
SQLの組み立てはいけてそうですが、実際のSQLは正常ですか? && は AND の方が分かりやすいかも。 [$key] がおかしいということもないんでしょうか。
お礼
お返事ありがとうございます。 Count(*)で試しましたが思うように取得できませんでした^^; sql文は始めたばかりで理解できていない箇所が多く引き続き調べて みたいと思います