繁体   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