比如我要更新一条记录,update table set Val=3333 limit 1;
这样执行结果为更新第一条,现在我的要求是要更新第100000条,所有要将游标移至100000处,该怎么做,
操作是在存储过程中的!
求各位老大帮忙!

解决方案 »

  1.   

    update table set Val=3333 limit 99999,1
      

  2.   

    先找到10000条的id 然后更新这个id
    declare  idx int default 0;
    select id into idx from tb limit 10000,1;
    update tb set value=33 where id=idx;
      

  3.   

    大哥,这样不行,mysql不知道limit带2个差数,只能limit 1,这样更新的是第一条!
      

  4.   

    所以想请教各位老大不知道mysql有没移动游标的操作我相信那样比查一次ID要快一点,因为我这边没办法根据条件来更新数据
      

  5.   

    游标不会快的。 还是用 #2楼 的方法比较快。
    update tb set value=33 where id=(select id from tb limit 10000,1);
      

  6.   

    老大,之前我也按你这样写,貌似mysql不可以这样做,必须先select 一次在更新像#2一样
      

  7.   

    http://topic.csdn.net/u/20120111/15/ac561deb-56d5-41b5-ab08-b6c56c9baf51.html?seed=899191936&r=77267719#r_77267719
      

  8.   

    你应该用两个游标,一起FECTH NEXT,