SELECT上的MySQL UPDATE

Str*_*ger 4 mysql sql

在MySQL中,是否可以更新同一查询中的选定记录?

例如,如果查询

 SELECT * 
   FROM `table`
  WHERE field = "value"
  LIMIT 0,2
Run Code Online (Sandbox Code Playgroud)

返回两行,然后在同一个查询中,我需要将表的count字段递增1.是否可能?

Ome*_*esh 5

是的,它可以写为UPDATE查询:

UPDATE my_table
SET count = count + 1
WHERE field = "value"
LIMIT 2;
Run Code Online (Sandbox Code Playgroud)

或者对于LIMIT偏移尝试:

UPDATE my_table a
       INNER JOIN (SELECT id FROM my_table WHERE field = "value" LIMIT 0, 2) b
             ON a.id = b.id
SET count = count + 1;
Run Code Online (Sandbox Code Playgroud)