php - 使用时间戳从一个表值更新另一表

标签 php mysql

当另一个表(称为“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/

相关文章:

MySQL建议和调查

php - Yii - 如何从另一个模型获取数据

php - 初始化 View 、模板和 Controller 以及模型是可选的

php - 如何通过 PHP 启用 SQLite 扩展结果代码?

php - 在网站上显示 JSON 数据

Mysql、hibernate slow_query_log日志设置时间戳

php - 未定义索引 : query in, 将 mysql 转换为 mysqli

mysql - SQL 按日期字段上的月份分组

php - 在 1 个 MySQL 查询中使用 select 语句和 php 变量插入

php - 属于许多获取所有行(Laravel)