2010-12-02 16 views
1

に私はこれを行う方法を疑問に思って:後でstatus 0 to 97を更新するコードで、その後、あなたは私がすべてのstatus 0 & 2を選択しています見ることができるように、私はこれを持っている瞬間にSELECT&UPDATEは、状況に応じて1つのSQL

をし、状態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値を保存したい場合は、あなたは一時テーブルを作成する必要がある、またはデータベースの外にあなたのプログラムに保存しますどちらか。私はあなたのプログラムの範囲でそれらを保つことができるなら、最も適切なサイズのセットのための第2を行うでしょう。

+0

テーブル(id_queue)からIDを選択する方法については、まだ別のものが必要です – James

関連する問題