2015-12-02 107 views
0

我試圖在另一個表(稱爲「商店」)上的行超過30天時更新一個名爲「Orders」的表。使用時間戳從一個表值更新另一個表

當創建「store」的值時,會給它一個添加到表的時間戳。但只要該值超過30天,我就需要它獲取該單元的ID(這是具有每行唯一ID的列),然後檢查該ID的名爲「orders」的表,然後更新該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; 

?> 

回答

1

如果表是在同一個數據庫只使用一個子查詢的WHERE子句中,喜歡這裏:MYSQL UPDATE with IN and Subquery

否則將ID集合到一個數組中,並在WHERE子句中將它們連接到implode。不要忘記引用每個ID。

此外,嘗試只選擇你需要的列(unique_id),而不是一次全部(*)。