1

私のデータベースには2つの行があります:性別(1つまたは2つの「男性、女性」のみ)、食べ物(リンゴ、バナナ、トースト、パスタなどのさまざまな記録)分割された最も好きな食べ物を関連付けたいセックスで。私はこのようなことをしましたが、うまくいきません:

$most_male = mysql_query("SELECT * FROM data WHERE sex = '1' GROUP BY foods HAVING count(*) > 2") or die(mysql_error()); //do something

$most_female= mysql_query("SELECT * FROM data WHERE sex = '2' GROUP BY foods HAVING count(*) > 2") or die(mysql_error()); //do something

このコードは、> 2 であるが最も反復的ではない最初のレコードのみを検索します。

4

2 に答える 2

0

これは役立つはずです:

$most_male = mysql_query("SELECT count(*) as Count,`foods` FROM `data` WHERE `sex` = '1' GROUP BY `foods` ORDER BY `Count` DESC") or die(mysql_error());

$most_female = mysql_query("SELECT count(*) as Count,`foods` FROM `data` WHERE `sex` = '0' GROUP BY `foods` ORDER BY `Count` DESC") or die(mysql_error());
于 2012-04-24T14:24:47.347 に答える
0
SELECT *
FROM (SELECT sex, foods, COUNT(*)
      FROM data
      WHERE sex=1
      GROUP BY sex, food
      HAVING COUNT(*)>2
      ORDER BY COUNT(*) DESC
      LIMIT 0,1
) ilv1
UNION
SELECT *
FROM (SELECT sex, foods, COUNT(*)
      FROM data
      WHERE sex=2
      GROUP BY sex, food
      HAVING COUNT(*)>2
      ORDER BY COUNT(*) DESC
      LIMIT 0,1
) ilv2
于 2012-04-24T14:55:23.883 に答える