2010-12-02 61 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