如何递增计数器并在MySQL中返回值

Jon*_*ury 18 mysql select

我有一个具有Key列和Counter列的表.我需要做这样的事情:

SELECT counter=counter+1 FROM table WHERE key='mykey'
Run Code Online (Sandbox Code Playgroud)

基本上,我需要增加Counter列并返回新值.我怎么能在MySQL 5.5中这样做?

Joe*_*ant 26

update mytable set count=last_insert_id(counter+1) where key='mykey'
Run Code Online (Sandbox Code Playgroud)

然后

select last_insert_id()
Run Code Online (Sandbox Code Playgroud)

last_insert_id()可以传递一个参数来'set'它(并返回该值),并且在没有参数的情况下调用它将再次返回该值.使用的内部状态last_insert_id()是每个连接,这意味着update在另一个连接上发出的相同语句不会影响第一个.

参考: last_insert_id()

  • 回答者说:`last_insert_id()`是每个连接.那么其他连接做什么并不会影响你.如果**你**做任何插入/替换然后是的它将是错误的. (3认同)