MySQL中如何给一个字段递增赋值

 更新时间:2023年07月01日 17:19:43   作者:会编程的漂亮小姐姐  
这篇文章主要介绍了MySQL中如何给一个字段递增赋值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

MySQL给一个字段递增赋值

在mysql中,设计表时设计的是一次递增,有时中间会删除一两行,导致ID不连续,这时,可以采用以下方法将ID改为连续的。

首先设置一个变量,初始值为0:

set @r:=0;

然后更新表中对应的ID列:

update tablename set id=(@r:=@r+1)

如果是插入,那就找一个记录多的表t1

set @r:=0;
insert into t select @r:=@r+1 from t1 limit 0, 2000

mysql set @rownum 变量 实现字段递增赋值

讲述Mysql数据库如何实现字段递增赋值,解决门店重新连续编号问题。先看下应用场景。

之前的需求

有个门店信息表,包含门店名称、门店类型等信息,表结构如下:

CREATE TABLE `sale_zd_shops` (
  `sid` bigint(20) NOT NULL AUTO_INCREMENT,
  `shop_id` varchar(32) NOT NULL COMMENT '门店ID,一串随机数',
  `shop_name` varchar(100) NOT NULL COMMENT '门店名称',
  `shop_nick` varchar(30) DEFAULT NULL COMMENT '门店别名',
  `shop_type` int(11) DEFAULT NULL COMMENT '门店类型',

新需求

因为门店重名概率比较多,尤其业务员沟通时几乎用门店别名(简称)为主,重名概率更高,因此不利于业务沟通,为此提出对门店进行编号,简单起见1000开始往上递增编号,新表结构如下:

CREATE TABLE `sale_zd_shops` (
  `sid` bigint(20) NOT NULL AUTO_INCREMENT,
  `shop_id` varchar(32) NOT NULL COMMENT '门店ID,一串随机数',
  `shop_no` varchar(32) NOT NULL COMMENT '门店编号,1000往上递增',
  `shop_name` varchar(100) NOT NULL COMMENT '门店名称',
  `shop_nick` varchar(30) DEFAULT NULL COMMENT '门店别名',
  `shop_type` int(11) DEFAULT NULL COMMENT '门店类型',

修改完表结构后,还需要进行shop_no数据处理,由于已经有好几万门店数据,不可能一一手工修改,为此需要sql 批处理。

mysql 字段递增赋值实现

set @rownum=10000;
update sale_zd_shops
SET shop_no = (
select @rownum := @rownum +1 as nid);

处理结果

sidshop_idshop_noshop_nameshop_type
18fasdffsaer10001发广告古古怪怪10
28fasd12fsaer10002发广告挺有意义20
34fasddfsaer10003发广挺告有意义20
<

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql属于关系型数据库吗

    mysql属于关系型数据库吗

    在本篇文章里小编给大家分享的是一篇关于mysql是否属于关系型数据库的相关文章,有兴趣的朋友们可以参考下。
    2020-06-06
  • mysql慢查询优化之从理论和实践说明limit的优点

    mysql慢查询优化之从理论和实践说明limit的优点

    今天小编就为大家分享一篇关于mysql慢查询优化之从理论和实践说明limit的优点,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • 关于sql count(列名)、count(常量)、count(*)之间的区别

    关于sql count(列名)、count(常量)、count(*)之间的区别

    这篇文章主要介绍了关于sql count(列名)、count(常量)、count(*)之间的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • mysqlhotcopy 正则使用小技巧

    mysqlhotcopy 正则使用小技巧

    mysqlhotcopy 是MySQL的热备工具,详细请看手册 ,为了安全起见我们给热备分配个用户
    2011-08-08
  • 深入探究Mysql模糊查询是否区分大小写

    深入探究Mysql模糊查询是否区分大小写

    这篇文章主要给大家介绍了关于Mysql模糊查询是否区分大小写的相关资料,文中给出了5种解决方法以及各个方法的建议,需要的朋友可以参考下
    2021-06-06
  • MySQL数据库表的CRUD操作

    MySQL数据库表的CRUD操作

    这篇文章主要介绍了MySQL数据库表的CRUD操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • mysql表的清空、删除和修改操作详解

    mysql表的清空、删除和修改操作详解

    这篇文章主要详细介绍了mysql表的清空、删除和修改操作的方法,以及一些常用的mysql的常用操作,非常的简单实用,有需要的可以参考下
    2014-09-09
  • MYSQL 随机 抽取实现方法及效率分析

    MYSQL 随机 抽取实现方法及效率分析

    MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。
    2009-05-05
  • mysql sql_mode="" 的作用说明

    mysql sql_mode="" 的作用说明

    在看discuz源码时看到了sql_mode="",不知道是干嘛的,猜想是设置模式,但是不清楚是什么模式,于是从网上搜了下,sql_mode="" 的作用
    2011-08-08
  • mysql 事务解析

    mysql 事务解析

    这篇文章主要给大家分享的是mysql事务解析,事务(transaction)是业务逻辑的一个基本的单元组成,下面文章围绕mysql事务的相关资料展开详细内容,需要的朋友可以参考一下希望对大家有所帮助
    2021-11-11

最新评论