我必须从MySQL数据库中随机选择一行,然后在该行上增加一个计数器(同一个表)。目前,我正在运行
SELECT id, img, title, alt, ... FROM table WHERE ... ORDER BY RAND() LIMIT 1
然后单独
UPDATE table SET counter = counter + 1 WHERE id = $id
因此运行两个查询。有没有办法在一个查询中执行此操作? 谢谢!
答案 0 :(得分:1)
如果您只需要增加值而不返回要处理的行,则可以执行以下操作: -
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