gpt4 book ai didi

php - 如何构建更复杂的mysql查询进行优化

转载 作者:可可西里 更新时间:2023-11-01 08:34:19 25 4
gpt4 key购买 nike

我有一段可爱的代码需要优化:

$result = mysql_query("select day from cities where name='St Charles'");
$row = mysql_fetch_assoc($result);
$day = $row['day'];

$result = mysql_query("select id,durability from goods_meta_data");

while($row = mysql_fetch_assoc($result)) {
mysql_query("delete from possessions where day_created<" . ($day-$row[durability]) . " and good_id=" . $row['id']);
}

如果属性(property)已过期,它会从表“属性(property)”中删除行。拥有权是否过期取决于“商品”和“城市”表中的值。具体来说,good的age = day-day_created,如果good的age大于它的durability,那么它就过期了。 (每一种属性(property)都是一种元素,每一种元素都有独特的耐用性。)

此代码有效,但我觉得这可以在单个查询中完成。mysql 服务器的延迟特别大,因此在较少的查询中执行此操作将非常有益。

我该怎么做?有什么想法吗?

此外,如果您能给我指出任何有用的资源,我可以从中了解如何以这种方式更好地利用关系数据库,那将会很有帮助。

最佳答案

假设您的第一个查询返回单个结果,那么这应该有效:

DELETE p 
FROM possessions p
INNER JOIN goods_meta_data gmd ON p.good_id = gmd.id
INNER JOIN cities c ON c.name = 'St Charles'
WHERE p.day_created < c.day - gmd.durability

关于php - 如何构建更复杂的mysql查询进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17644838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com