質問: MYSQLとPHPでサイトを制作していて、レコード数のカウントでいろいろと悩んでいます。 現在は下記のSQL文で、フィールドAのレコードを各種別によってカウントしています。 例) 全レコード数 10件 フィールドデータが1の物 1件 フィールドデータが2の物 4件 フィールドデータが3の物 5件 SQL文 select フィールドA, count(*) as cnt from テーブル group by フィールドA 上記のカウントとは別でフィールドBのデータも各種別によってカウントしたいのですが何か良い方法はないでしょうか? 現在は上記のSQL文を2種類作ってカウントしています。 他にもカウントしたいものがあるので、このままだと何回も記述することになるので一気にカウントしたいです。 どなたか解る人お願いします。
回答: 単純に行数を減らしたいのであれば, phpの段階で必要なフィールド名を配列に格納し 異なるSQL文を順次発行してくことになるかと。 $field = array('フィールドA', 'フィールドB', 'フィールドC'); foreach ($field as &$value) { $sql = "select".$value.", count(*) as cnt from テーブル group by ".$value; $result = mysql_query ($sql) or die ("Invalid query"); } なお,動作確認していないのでご注意。