簡體   English   中英

SQL SELECT然后在一個查詢中更新

[英]SQL SELECT then UPDATE in one query

我必須從MySQL數據庫中隨機選擇一行,然后在該行(同一表)上增加一個計數器。 此刻,我正在跑步

SELECT id, img, title, alt, ... FROM table WHERE ... ORDER BY RAND() LIMIT 1

然后分別

UPDATE table SET counter = counter + 1 WHERE id = $id

從而運行兩個查詢。 有一種方法可以在一個查詢中完成所有這些操作嗎? 謝謝!

如果您只需要增加該值而不需要返回一行來處理,則可以執行以下操作:

UPDATE fred
INNER JOIN
(
    SELECT id
    FROM fred
    ORDER BY RAND()
    LIMIT 1
) sub0
ON fred.id = sub0.id
SET fred.counter = fred.counter + 1

或更簡單:-

UPDATE fred
SET fred.counter = fred.counter + 1
ORDER BY RAND()
LIMIT 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM