当另一个表(称为“store”)上的行已存在超过 30 天时,我正在尝试更新一个名为“Orders”的表。
创建“store”上的值时,会为其添加添加到表中的时间的时间戳。但是,一旦该值超过 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;
?>
最佳答案
如果这些表位于同一数据库上,只需在 WHERE 子句中使用子查询,如下所示:MYSQL UPDATE with IN and Subquery
否则将 ID 聚合到一个数组中,并在 WHERE 子句中将它们与 implode 连接起来。不要忘记引用每个 ID。
此外,尝试仅选择您需要的列 (unique_id),而不是一次全部选择 (*)。
关于php - 使用时间戳从一个表值更新另一表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34051739/