关于对查询结果的遍历result=(`echo "SELECT concat(insert into table (a) values(', test, ',)') as insertquery from (select a from tab”| $mysql_exec`)这里result的结果集为insert into table (a) values (111)
insert into table (a) values (222)
insert into table (a) values (333)我想把这些结果按行读取, 再去执行.我写
for test in "${result[@]}"; do
    todo.......
done如果这样的话,他每次只是返回以一个空格来循环..
有什么方法让她一行一行做啊?
如果用 * 他把全部都拿过来.我怕数据量大, server会down掉.
有什么好方法吗?哦还有. 我不想在 insert 语句 查询. 因为是 从其他数据库查询,再插入到其他数据库..谢谢你了..

解决方案 »

  1.   

    为什么不直接用 mysqldump来生成这个 insert 语句呢?
      

  2.   

    [code=BatchFile]C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqldump -uroot -p123 csdn players
    --no-create-info --skip-add-locks --compact --complete-insert --skip-extended-in
    sert
    INSERT INTO `players` (`INITIALS`, `NAME`, `LEAGUENO`) VALUES ('R','Everentt','2
    411');
    INSERT INTO `players` (`INITIALS`, `NAME`, `LEAGUENO`) VALUES ('R','Parmentter',
    '8467');
    INSERT INTO `players` (`INITIALS`, `NAME`, `LEAGUENO`) VALUES ('GWS','Wise',NULL
    );
    INSERT INTO `players` (`INITIALS`, `NAME`, `LEAGUENO`) VALUES ('D','Bishop',NULL
    );
    INSERT INTO `players` (`INITIALS`, `NAME`, `LEAGUENO`) VALUES ('M','Brown','6409
    ');
    INSERT INTO `players` (`INITIALS`, `NAME`, `LEAGUENO`) VALUES ('PK','Hope','1608
    ');
    INSERT INTO `players` (`INITIALS`, `NAME`, `LEAGUENO`) VALUES ('P','Parmenter','
    6524');C:\Program Files\MySQL\MySQL Server 5.1\bin>[/code]
      

  3.   

    那这些insert语句是怎么生成的啊?
    能具体说下吗? 或者资料.
      

  4.   


    C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqldump -uroot -p123 csdn players --no-create-info --skip-add-locks --compact --complete-insert --skip-extended-insert写得很清楚了啊。
      

  5.   

    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html