我需要查询(读取)一些数据,并在对不同的表执行另一个查询(读取)之前对其进行分析。
我看过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();
提前谢谢您。
最佳答案
为什么不将这 2 个查询合并为一个,稍后在需要时进行分析。例如:
"SELECT price FROM products
JOIN Vendors ON Vendors.color = products.color
WHERE type = $productType
AND color = 'green';"
MySQL 是声明性语言,因此通常最好“告诉它”您想要什么,然后再修改数据(如果需要)。
关于PHP MySQL 执行多个相关查询的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47663420/