【发布时间】:2017-04-30 07:28:02
【问题描述】:
我有一个 mysql 表,我喜欢在其中执行查询。我的表格如下所示:
日期活动金额 -------- ------ -------- 第 1 天 喝 0 第 1 天 吃 1 第 1 天呼吸 1 第 2 天 喝 0 第 2 天 吃 0 第 2 天呼吸 0 第 3 天 喝 1 第 3 天呼吸 0 第 4 天 吃 1 等等 等等 等等我想做的是看看什么时候吃是 1,对于事实,我想显示那些日子的所有活动
//我现在正在做的是: $activityarray = 数组(); $result = mysql_query("SELECT * FROM table WHERE activity='eat' AND amount='1'"); $row = mysql_fetch_assoc($result); //这将返回所有活动=吃和数量=1的行 做{ //为每个结果行执行一个新查询;从第一个查询中查找 'date'=$row[date] 并显示当天完成的所有活动 (activity=1) $result2 = mysql_query("SELECT * FROM table WHERE date='".$row[date]."'"); $row2 = mysql_fetch_assoc($result2); 做{ array_push($activityarray,$row2['activity']); }while($row2 = mysql_fetch_assoc($result2)); }while($row = mysql_fetch_assoc($result)); print_r($activityarray);由于每天有数千天和数十个活动,这对我来说似乎不是最有效的方法。有没有一种方法可以让我通过一个查询更有效地做到这一点? (所以:检查吃=1 天的所有活动)。 希望有人能帮帮我!
【问题讨论】:
-
类似
SELECT * FROM table WHERE day =(select day from where activity='eat' AND amount='1')的东西 -
@Dagon 那应该是
WHERE day IN ... -
啊,是的,虽然很快
-
为什么要存储零(以及,通过扩展,零)?
-
还有 mysql_?啊啊啊