我想在SqLite的一個查詢中更新並選擇一行。在MySQL我想要的查詢應該是這樣的:如何在SqLite的一個查詢中更新並選擇一行?
SET @update_id := -1;
UPDATE data SET `Status` = 'running', Id = (SELECT @update_id := Id)
WHERE `Status` = 'scheduled' LIMIT 1;
SELECT * FROM data WHERE [email protected]_id;"
上面的查詢將設置狀態到「跑步」和變量的價值@update_id到修改行的標識爲第一行有狀態'預定',並使用變量@update_id來獲取完整的修改行。
重要的一點是,我需要選擇該行,我一直UPDATE語句
修改,但據我所知SQLite不支持的變量。
如何從上面的MySQL查詢重寫爲SqLite?
你能解釋一下你想要在這裏做什麼嗎? 如果Id或-1沒有設置,你的設置Id似乎是以前的值? – MindStalker 2009-12-17 14:33:55
你的SQL實際上是三個語句,而不是一個。 – 2009-12-17 14:58:23
@mutzel:對於併發問題,我可以建議的最好是帶有版本的int列。這意味着需要在做某事時傳遞ID和版本,但它會有效地阻止併發問題。 – 2009-12-17 17:04:33