aa表中有id,username,email三个字段。原本有些数据。 我想实现根据样本中给出邮箱批量更新username的值。样本:
username            email
21631259 [email protected]
645474         [email protected]
20338332 [email protected]
21743745 [email protected]
20031229 [email protected]
21685028 [email protected]
20132408 [email protected]
20415986 [email protected]
.............
............
现在想到的是从样本中一条一条复制过来放在SQL语句中执行。数据有几千条。这样太慢了。请教各位大侠是否有简单的方法,谢谢!
UPDATE aa SET username='21631259' WHERE email='[email protected]';

解决方案 »

  1.   

    把样本放在一个文件里,
    然后读文件,读到一条记录,接着就执行一条更新语句。
    如果email在aa中没有对应的记录,那么更新就会不进行任何操作了。
    几千条数据,10分钟之内绝对很快就执行完了。
      

  2.   

    其实,使用ultraedit编辑器,大概一两分钟就把这个SQL文件给生成了。
    参考列编辑模式。
      

  3.   

    update  aa set username=substring_index(email,'@',1);
      

  4.   

    谢谢。文本中放什么内容。是不是也是要手动生成SQL语句啊?
      

  5.   

    用LOAD DATE INIFILE导入 文本文件,再替换
    LOAD DATE INIFILE 'r:/123.txt'into TABLE 样本;
    update aa a inner join 样本 b on a.email=b.email set a.username=b.username
      

  6.   

    请问样本一定要是txt格式吗。xls或者csv的可以吗。。