这是我的问题:
我有一个 mySQL 数据库,它有 3 列(为简单起见 - 还有其他不相关的列)和 3000 行数据(再次为简单起见),我正在执行下面的循环:
$iCount = count($item_ids);
for($i=0;$i<$iCount;$i++){
$q="SELECT item_id, value_date FROM $dataTable WHERE value_date >= $sDate AND value_date <= $eDate AND price_disc <> 'NA' AND item_id = '".$item_ids[$i]."' ORDER BY value_date";
$q=$myConn->query($q);
if($q->num_rows>0){
$x=0;
while($row=$q->fetch_assoc()){
$iData[$i][0]=$row['item_id'];
$iData[$i][1][$x]=$row['value_date'];
$x++;
}
$q->free();
}
set_time_limit(30);
}
填充 PHP 数组(如您所见)。
上面的代码正在运行,虽然非常缓慢,因为它目前迭代了大约 3000 次(每个 item_id 一个)。
我正在寻找一种将数据收集到与当前格式相同的数组中的方法(item_id 是 array[$i][0] 并且 value_date 是 array[$i][1][$x] ),但在单个查询中而不是 3000 中。
注意:除非完全必要,否则我不想重新组织数据库。
我确信有一种简单的方法可以做到这一点。提前致谢。
编辑:我知道我可以使用 IN('.join(item_ids).') 将其变成一个查询字符串,我只是不知道如何在一个与我拥有的维度相同的数组中获取结果描述。