新聞中心
mysql用一個表數(shù)據(jù)替換另一個表中的數(shù)據(jù)
mysql的語法和Sqlserver的語法還是有區(qū)別的:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了九江免費(fèi)建站歡迎大家使用!
update tb_restaurant,tb_restPre set tb_restaurant.Cdate = tb_restPre.Cdate
where tb_restaurant.id=tb_restPre.ReplaceUid and tb_restPre.id=1 and tb_restaurant.id=1
mysql 用一個數(shù)據(jù)表替換另一個數(shù)據(jù)表的值
使用相關(guān)子查詢就可以實(shí)現(xiàn):
update B set bc1=(select ac1 from A where A.aid=B.bid)
求mysql如何替換數(shù)據(jù)庫中所有表所有字段中的指定字符A為b
提供兩個辦法;
第一個是,笨辦法,查找每個字段,看有單位的名稱就修改一下。
第二個是,如果數(shù)據(jù)庫數(shù)據(jù)量不大的話,可以使用mysqldump將數(shù)據(jù)導(dǎo)出到一個文本文件,然后使用文本文件的替換功能,將單位名稱替換成正確的,然后再將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫。
當(dāng)然,也可以兩個聯(lián)合使用,比如先使用第二個方法中的mysqldump將數(shù)據(jù)導(dǎo)出,然后查找單位名稱,看一共有多少處需要修改,然后再使用第一個方法中的update語句將字段值更新成新的單位名稱。
mysql導(dǎo)入新表替換久表
MYSQL的數(shù)據(jù)是保存在文件里面的,在MYSQL的DATA文件夾下面,每個數(shù)據(jù)庫是一個子文件夾,里面沒個表有兩三個文件,你直接從另外的數(shù)據(jù)庫拷貝表的文件到這個數(shù)據(jù)庫的文件夾里面,就能完成增加表、替換表。
mysql數(shù)據(jù)庫,如何實(shí)現(xiàn)全表、全字段替換呢?
--test庫是目標(biāo)庫(做替換前一定要做好備份)
--test2是圖片名字?jǐn)?shù)據(jù)集表所在的庫
use?test2
--?建立測試表和數(shù)據(jù)
create?table?picName?(oldname?varchar(200),newname?varchar(200));
insert?into?picName?values?('圖片.JPG','tupian.JPG'),('博客.JPG','boke.JPG'),('網(wǎng)站.JPG','wangzhan.JPG');
commit;
--?建立存儲過程
drop?procedure?if?exists?dynamic_cursor;
CREATE?PROCEDURE?dynamic_cursor?(IN?db_name?varchar(100))
BEGIN
DECLARE?done?INT?DEFAULT?0;
DECLARE?v_updateSql?varchar(2000);
DECLARE?times?INT?DEFAULT?0;
--
--
declare?_err?int?default?0;
DECLARE?cur?CURSOR?for(?SELECT?updateSql?from?picName_view);
DECLARE?CONTINUE?HANDLER?FOR?NOT?FOUND?SET?done?=?1;
DECLARE?CONTINUE?HANDLER?FOR?SQLEXCEPTION?set?_err=1;
DROP?VIEW?IF?EXISTS?picName_view;
SET?@sqlstr?=?"CREATE?VIEW?picName_view?as?";
--???SET?@sqlstr?=?"";
SET?@sqlstr?=CONCAT(@sqlstr?,"select?concat('update?",db_name,".`',a.table_name,'`?set?',a.column_name,'=replace(',a.column_name,',''',b.oldname,''',''',b.newname,''')')?updateSql");
SET?@sqlstr?=CONCAT(@sqlstr?,"?from?information_schema.`COLUMNS`?a?,picName?b?");
SET?@sqlstr?=CONCAT(@sqlstr?,"?where?a.TABLE_SCHEMA='",db_name,"'?and?");
SET?@sqlstr?=CONCAT(@sqlstr?,"?(a.COLUMN_type?like?'%char%'?or?a.COLUMN_type?like?'%text%'?or?a.COLUMN_type?like?'%blob%')");
PREPARE?stmt?FROM?@sqlstr;
EXECUTE?stmt;
DEALLOCATE?PREPARE?stmt;
OPEN?cur;
f_loop:LOOP
FETCH?cur?INTO?v_updateSql;
??IF?done?THEN
LEAVE?f_loop;
??END?IF;
??set?@updateSql=v_updateSql;
???PREPARE?stmt2?FROM?@updateSql;
EXECUTE?stmt2;
???set?times=times+1;
--? ??SELECT?v_updateSql;
END?LOOP?f_loop;
CLOSE?cur;
/*?*/
COMMIT;
select?times;
END;
--?測試
call?dynamic_cursor('test');
分享文章:mysql怎么替換表呀 mysql中的替換函數(shù)
文章來源:http://fisionsoft.com.cn/article/doceheh.html