如何在執行此查詢時將_displayed設置爲1?如何獲取列的值並更新單個查詢中的另一列?
select message
from commands
where whether_executed=1
and whether_displayed=0
and from_who='".$user_id."'
LIMIT 1
如何在執行此查詢時將_displayed設置爲1?如何獲取列的值並更新單個查詢中的另一列?
select message
from commands
where whether_executed=1
and whether_displayed=0
and from_who='".$user_id."'
LIMIT 1
在這之後,你可以像這樣運行
UPDATE commands SET whether_displayed=1
WHERE whether_executed=1
AND from_who='".$user_id."'
更新查詢或本
UPDATE commands
SET whether_displayed=1
WHERE message IN (
SELECT message FROM (
SELECT message FROM commands
where whether_executed=1
and whether_displayed=0
and from_who='".$user_id."'
LIMIT 1
) tmp
);
所以我必須做另一個更新查詢吧?在單個查詢中有沒有辦法做到這一點? (選擇+更新)? –
你可以試試這個更新的答案。 –
嘗試這樣
UPDATE commands SET whether_displayed= '1'
WHERE from_who='".$user_id."' = (
SELECT from_who
FROM commands
where whether_executed=1
LIMIT 1
);
一些額外的線路或改變該查詢需要根據您的需要
嘗試子查詢這樣做 –
請注意,沒有ORDER BY的LIMIT幾乎沒有意義。 – Strawberry