mysql -h10.xxx -uook -pdbbbH9DePOxb -P3306 -Ne "use nb_sdk; select CONCAT('UPDATE nb_app p set p.app_id =',p.AppId, ', p.app_key=''',p.AppKey, ''', p.secret_key=''',p.SecretKey, ''', p.notify_url=''',p.NotifyUrl,''' where package_name = ''', p.PackageName, ''' ;') from app p;" > ./rs.sql
对于一小部分数据,其在很大的数据中,可以通过下面的方式从多的一边获取数据,然后在小的数据边更新数据
use mmm;select CONCAT("use test; select CONCAT('UPDATE user_account p set p.NickName =''',x.nickname, ''' where UserId = ',x.uid,' ;') from pre_ucenter_members_info x where x.uid=",t.UserId, ";" ) from user_account t INTO OUTFILE '/tmp/fi.txt' ;
上面是在小的数据产生执行文件
mysql -uroot -p -N < /tmp/fi.txt > ./res.sql; 这句是在多的一方执行,产生的res.sql文件就可以在小的一般导入执行。
如果有null的情况,则需要加以下代码
SELECT CONCAT(IFNULL(isdcode,''),telephone) FROM gb_customer