2012-01-25 105 views
0

我一直唸叨的mysqli multi_query並且不可能找到一個方法來做到這一點(如果可能)如何使用從第一查詢結果中第二個查詢

$db->multi_query("SELECT id FROM table WHERE session='1'; 
       UPDATE table SET last_login=NOW() WHERE id=table.id"); 

它似乎沒有工作。我試圖使用第一個查詢的ID更新第二個。這是可能的

回答

0
UPDATE table 
    SET last_login = NOW() 
    WHERE id IN (SELECT id 
        FROM table2 
        WHERE session = '1') 

這將更新會話='1'的所有記錄。當然,假設子查詢返回多個結果集,我可以看到它,它會。

這也允許您放棄multi_query()方法,因爲它只是一個查詢。


在迴應評論:

根據http://lists.mysql.com/mysql/219882這似乎並不可能與MySQL。雖然我想你可以去這樣的事情:

$db->multiquery(
    "UPDATE table 
     SET last_login = NOW() 
     WHERE id IN (SELECT id 
         FROM table2 
         WHERE session = '1'); 
    SELECT id 
    FROM table2 
    WHERE session = '1';" 
); 

這是醜陋的,兩次執行相同的查詢,但應該做你想要什麼。

+0

有沒有一種方法來重寫它,以便我可以得到結果集並在腳本中使用它較低..多數民衆贊成什麼後即時通訊。只是想知道如果我已經放置了2個可以變成一個的查詢。 –

相關問題