【发布时间】:2018-05-19 16:37:30
【问题描述】:
我需要查询(读取)一些数据,并在对不同的表执行另一个查询(读取)之前对其进行分析。
我查看了mysqli multiple statements,但他们没有关于第二个查询取决于第一个查询结果的情况的文档。
看来我当前执行两个查询的代码可能不是最佳的。有没有更优化的方法来做到这一点?
//FIRST QUERY
$query1= "SELECT color FROM products WHERE type = '$productType';";
$result = $conn->query($query1);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$colorProduct = $row["color"];
}
}
//ANALYZE SEARCH RESULT FROM FIRST QUERY
if ($colorProduct == "green") {
$colorType = "greenColorType";
}
//a lot more analysis
//SECOND QUERY
$query2 = "SELECT price FROM Vendors WHERE color = '$colorType';";
$result2 = $conn->query($query2);
if ($result2->num_rows > 0) {
while($row = $result2->fetch_assoc()) {
$priceOfProduct = priceOfProduct . $row["price"];
}
}
$conn->close();
提前谢谢你。
【问题讨论】:
-
我很想为此创建一个存储过程 - 特别是如果处理是一项常规任务。最后一个查询是使用
.~ 大概这是为了添加所以你可能想要+代替? -
看起来你可以用一个查询来做到这一点
-
我同意这可以通过单个查询来完成。我想这让我感到困惑的是
$colorType仅在$colorProduct == "green"时设置。你确定这是你想要的吗?也许明确说明您要实现的目标,因为您的代码在当前状态下难以解释。
标签: php mysql performance mysqli