用MySQL计数

时间:2012-10-08 08:31:21

标签: mysql

有没有办法在MySQL更新查询中计算Int?

目前我有

UPDATE mails SET uid = 4275

我想要像

这样的东西
UPDATE mails SET uid = (4275++)

6 个答案:

答案 0 :(得分:3)

你想做这样的事吗?

SELECT @i:=425;

UPDATE mails SET uid = @i:=@i+1;

答案 1 :(得分:1)

如果您需要更新表格以便将每个uid增加1,那么您可以这样做:

   UPDATE mails 
   SET uid = uid + 1;

但是如果您需要将每个值uid增加一个增量值,请尝试:

SET @counter = 0; 
UPDATE mails m1
INNER JOIN
(
    SELECT *, (@counter := @counter +1) as counter
    FROM mails
) m2 ON m1.uid = m2.uid
SET m1.uid = m1.uid + m2.counter

如果您想从4275开始计算,只需将计数器设置为SET @counter = 4275

答案 2 :(得分:1)

更新邮件SET uid = uid + x

x表示任何数字

我没有正确地回答您的问题,但我只是按照我的理解回答

更新邮件SET uid = uid + 1

即通过lastuid + 1增加当前uid

答案 3 :(得分:0)

UPDATE mails SET uid = uid +1会在每个uid列中添加1。

答案 4 :(得分:0)

尝试

UPDATE mails SET uid = uid+1
where uid = 4275

答案 5 :(得分:-1)

你可以保留自己的计数器

declare @curr_uid integer; 
SET @curr_uid = 4275; -- initial uid

update mails
set uid = @curr_uid , @curr_uid = @curr_uid + 1