这是一个select的结果集,如何最快的给前面补上连续递增的序号?
这里是个例子:
set @a=0;select @a:=@a+1,user,host from mysql.user;
这里定义了一个变量@a,并在select中动态赋值,实现每行加一。
这个语句也可以用在update中,如:
set @a=0;update table_name set col_name=@a where @a:=@a+1;
这里在mysql5有个潜规则:
如果where后有多个条件,那么变量只会计算一次。如果语句col_name将始终为1。
where @a:=@a+1 and col2_name='xxx';
这时只能通过临时表增加一个递增列,或者联表操作完成。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。