msyql中ado如何同时update多条记录

解决方案 »

  1.   

    conn.execute "update table1 set xx=123 where id<10"
      

  2.   

    为提高理解的效率,建议举例说明或提供测试用例。   建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  3.   

    数据表大小对 数据记录的更新速度有没有影响理论上表中记录越多,更新一条记录的速度当然速度会越慢 。
    update xxx set col=123 where id=909
    更新的时间主要是由 查找部分,更新值,维护索引构成。 记录越多对第一部分[查找部分]有影响,但愿如果设置了适当的索引,则影响很小。
      

  4.   

    CREATE TABLE `playerinfo_year` (
      `PlayerID` int(11) NOT NULL,
      `LastLoginDate` datetime default NULL,
      `LastUpdateDate` datetime default NULL,
      `LastIP` varchar(16) default NULL,
      `LastSevID` int(11) NOT NULL default '0',
      `OnlineSec` int(11) NOT NULL default '0',
      `IsOnline` int(11) NOT NULL default '0',
      `Mark` decimal(16,1) NOT NULL default '0.0',
      `Hurt` decimal(16,0) NOT NULL default '0',
      `Kills` int(11) NOT NULL default '0',
      `Deaths` int(11) NOT NULL default '0',
      `HeadShoots` int(11) NOT NULL default '0',
      `HeadShootRate` decimal(16,4) NOT NULL default '0.0000',
      `HeadShots` int(11) NOT NULL default '0',
      `Fire` decimal(16,0) NOT NULL default '0',
      `Hit` decimal(16,0) NOT NULL default '0',
      `HitRate` decimal(16,4) NOT NULL default '0.0000',
      `PlayerLevel` int(11) NOT NULL default '1',
      `PlayerRank` int(11) NOT NULL default '0',
      `ActiveTime` timestamp NOT NULL default CURRENT_TIMESTAMP,
      PRIMARY KEY  (`PlayerID`),
      KEY `PlayerLevel` (`PlayerLevel`),
      KEY `IsOnline` (`IsOnline`),
      KEY `ActiveTime` (`ActiveTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;这是我的表结构  现在的记录条数是4766349,我现在要对playerinfo_year做频繁的更新操作
      

  5.   

    我现在要对playerinfo_year做频繁的更新操作猜不出你想做的操作是什么? 
    update `playerinfo_year`  set `PlayerLevel` =1 是不是你想要的?
      

  6.   

    update `playerinfo_year`  set `PlayerLevel` =1,Fire = 5.... where payerid = 98类似这样的操作
      

  7.   

    这个问题与MYSQL有关系吗???