我正在尝试更新名为" Orders"当另一个表上的一行(称为" store")超过30天时。
当"存储"创建时,会给它一个时间戳,表示添加到表中的时间。但是,一旦该值超过30天,我需要它来获取该单元格的ID(每行具有唯一ID的列),并检查名为" orders"对于该ID,并更新该ID所在的另一列。
到目前为止,我已写过这篇文章,但显然是错误的:
<?php
include ('connectdb.php');
$query = $db->query("SELECT * FROM store WHERE open_time < (NOW()- INTERVAL 30 DAYS)");
$update = $db->prepare("UPDATE orders SET notified=-1 WHERE unique_id=$query");
$db = null;
?>
答案 0 :(得分:1)
如果表位于同一个数据库中,只需在WHERE子句中使用子选择,如下所示:MYSQL UPDATE with IN and Subquery
否则将ID聚合到一个数组中,并在WHERE子句中将它们与implode连接起来。不要忘记引用每个ID。
此外,尝试仅选择所需的列(unique_id),而不是一次性选择(*)。