我正在尝试从选择年份和星期生成每周报告。下面是我的代码。我工作,直到我添加WHERE
条件。
<form action="" method="POST">
Select Year:<select name="sortyear" id="sortyear">
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
</select>
Select Week:<select name="week" id="week">
...</select>
<?php $sql = mysql_query("SELECT SUM(credit) AS credit, depot, Date_Format(`timestamp`,'%U%Y') AS period FROM transactions where Date_Format(`timestamp`,'%U%Y')='102013' group by Date_Format(`timestamp`,'%U%Y') DESC"); while($row11 = mysql_fetch_array( $sql ))
{
$credit = $row11['credit'].'<br>';
$depot = $row11['depot'].'<br>';
$period = $row11['period'].'<br>';
}
$sortyear = $_REQUEST['sortyear'];
$week = $_REQUEST['week'];?>
请帮。
您的查询将非常低效。您正在使用mysql日期/时间字段,将其转换为字符串,然后使用该字符串进行比较。这就排除了索引的使用。
为什么不直接
SELECT ...
...
WHERE (YEAR(timestamp) = 2013) AND (MONTH(timestamp) = 10)
GROUP BY YEAR(timestamp), MONTH(timestamp)
?