2010-12-02 102 views
1

我想知道如何做到這一點:選擇和更新

目前,我有這個,你可以看到,我選擇所有status 0 & 2,然後在後面的代碼更新status 0 to 97和狀態2 to 99

SELECT id_queue, status FROM table WHERE status IN (0,2) ORDER BY status, id_queue ASC FOR UPDATE; 

UPDATE table SET status = 97 WHERE id_queue= " + id_sms + "; 

UPDATE table SET status = 99 WHERE id_queue= " + id_sms + "; 

我想SELECT & UPDATE,並同時獲得的id_queue行ID以備後用 誰能幫助?

非常感謝。

回答

0
UPDATE table 
SET status = CASE status WHEN 0 THEN 97 
         WHEN 2 THEN 98 
      END 
WHERE status IN (0, 2) 

如果要保存id_queue值,則需要創建臨時表,或將它們存儲在數據庫外的程序中。我會爲大部分合理大小的設置做第二次 - 如果你可以將它們保持在你的程序範圍內,那麼你可以少管家務。

+0

怎麼樣從表中選擇id(id_queue),我仍然需要他們的其他東西 – James 2010-12-02 07:51:11