mysql批量修改请教!

一起混吧 2011-12-13 12:03:33

aa表中有id,username,email三个字段。原本有些数据。 我想实现根据样本中给出邮箱批量更新username的值。

样本:
username email
21631259 bin.lu@aa.com
645474 bb_yang@aa.com
20338332 aa.zhao@aa.com
21743745 jie.chen6@aa.com
20031229 hai-jing.zhao@aa.com
21685028 dc.yao@aa.com
20132408 at-hua.wang@aa.com
20415986 db.lei@aa.com
.............
............
现在想到的是从样本中一条一条复制过来放在SQL语句中执行。数据有几千条。这样太慢了。请教各位大侠是否有简单的方法,谢谢!
UPDATE aa SET username='21631259' WHERE email='bin.lu@aa.com';

...全文
376 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
一起混吧 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 iihero 的回复:]

其实,使用ultraedit编辑器,大概一两分钟就把这个SQL文件给生成了。
参考列编辑模式。
[/Quote]谢谢。我试试。。
一起混吧 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 denieljean 的回复:]

把样本放在一个文件里,
然后读文件,读到一条记录,接着就执行一条更新语句。
如果email在aa中没有对应的记录,那么更新就会不进行任何操作了。
几千条数据,10分钟之内绝对很快就执行完了。
[/Quote]谢谢。文本中放什么内容。是不是也是要手动生成SQL语句啊?
rucypli 2011-12-13
  • 打赏
  • 举报
回复
update aa set username=substring_index(email,'@',1);
iihero_ 2011-12-13
  • 打赏
  • 举报
回复
其实,使用ultraedit编辑器,大概一两分钟就把这个SQL文件给生成了。
参考列编辑模式。
无天 2011-12-13
  • 打赏
  • 举报
回复
把样本放在一个文件里,
然后读文件,读到一条记录,接着就执行一条更新语句。
如果email在aa中没有对应的记录,那么更新就会不进行任何操作了。
几千条数据,10分钟之内绝对很快就执行完了。
一起混吧 2011-12-13
  • 打赏
  • 举报
回复
谢谢各位了。
WWWWA 2011-12-13
  • 打赏
  • 举报
回复
TXT csv的可以
一起混吧 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wwwwa 的回复:]

用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
[/Quote]请问样本一定要是txt格式吗。xls或者csv的可以吗。。
WWWWA 2011-12-13
  • 打赏
  • 举报
回复
用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
一起混吧 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wwwwa 的回复:]

文本文件格式是固定的?以空格为分隔符?
[/Quote]对。固定的。
WWWWA 2011-12-13
  • 打赏
  • 举报
回复
文本文件格式是固定的?以空格为分隔符?

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧