MySQL 把查詢結(jié)果更新或者插入到新表的操作方法
摘要:在MySQL數(shù)據(jù)庫,把查詢到的多條記錄復(fù)制到另一張表中。復(fù)制通常包括兩種場(chǎng)景,一種是使用update命令更新舊數(shù)據(jù),另一種是使用insert命令插入新記錄。
需求背景:在某些業(yè)務(wù)中,需要把查詢到的多條記錄復(fù)制到另一張表中來滿足業(yè)務(wù)需求。復(fù)制通常包括兩種場(chǎng)景,一種是使用update命令更新舊數(shù)據(jù),另一種是使用insert命令插入新記錄。
insert插入
INSERT語句可以將SELECT語句查詢出來的數(shù)據(jù)插入到另一張表中,即可快速地從一張或多張表中向另一張表中插入滿足條件的多條記錄。這樣,可以方便不同表之間進(jìn)行數(shù)據(jù)交換。基本的語法如下:
INSERT INTO table_name1(字段列表1) SELECT 字段列表2 FROM table_name2 WHERE 條件表達(dá)式 LIMIT 0,n;
table_name1:表示記錄插入到哪個(gè)表中。
字段列表1:表示為哪些字段賦值。
字段列表2:表示從表中查詢出哪些字段的數(shù)據(jù)。
table_name2:表示記錄是從哪個(gè)表中查詢出來的。
條件表達(dá)式:表示設(shè)置SELECT語句的查詢條件。
指定條數(shù):LIMIT 0,n 用于指定查詢出多少條記錄,即從第幾條開始返回。
將 table_name2 中查詢出來的記錄插入到 table_name1 中以后,table_name2中原來的記錄保持不變。
溫馨提示:使用上述語法時(shí),必須保證“字段列表1”和“字段列表2”中的字段個(gè)數(shù)相等,同時(shí),也必須保證每個(gè)對(duì)應(yīng)字段的數(shù)據(jù)類型是一樣的。如果數(shù)據(jù)類型不一樣,數(shù)據(jù)庫會(huì)報(bào)錯(cuò)并阻止INSERT語句向下執(zhí)行。
案例:
INSERT INTO t1(id,user_name,score) SELECT t2.id,t2.user_name,t2.score FROM t2 where t2.user_name = 'Wiener';
從t2表中查詢出user_name為Wiener的三個(gè)字段id、user_name和score,將其插入到t1表中id、user_name和score。
update更新
多表更新時(shí),可以使用update命令進(jìn)行操作,語法比較簡單,請(qǐng)參考如下SQL語句:
UPDATE t1,t2 SET t1.score = t2.score WHERE t1.id = t2.id AND t2.score IS NOT NULL;
結(jié)束語
到此這篇關(guān)于MySQL 把查詢結(jié)果更新或者插入到新表的文章就介紹到這了,更多相關(guān)mysql查詢結(jié)果插入新表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
 MySQL的Redo Log數(shù)據(jù)恢復(fù)核心機(jī)制面試精講
這篇文章主要為大家介紹了MySQL的Redo Log數(shù)據(jù)恢復(fù)核心機(jī)制面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
 win10下安裝mysql8.0.23 及 “服務(wù)沒有響應(yīng)控制功能”問題解決辦法
這篇文章主要介紹了win10下安裝mysql8.0.23 及 “服務(wù)沒有響應(yīng)控制功能”問題解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
 mysql實(shí)現(xiàn)數(shù)據(jù)文件存儲(chǔ)到指定分區(qū)的示例代碼
MySQL中可以使用分區(qū)表來提高數(shù)據(jù)檢索速度,本文主要介紹了mysql實(shí)現(xiàn)數(shù)據(jù)文件存儲(chǔ)到指定分區(qū)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
 MySQL 5.6 & 5.7最優(yōu)配置文件模板(my.ini)
這篇文章主要介紹了MySQL 5.6 & 5.7最優(yōu)配置文件模板(my.ini),需要的朋友可以參考下2016-07-07
 通過mysql show processlist 命令檢查mysql鎖的方法
show processlist 命令非常實(shí)用,有時(shí)候mysql經(jīng)常跑到50%以上或更多,就需要用這個(gè)命令看哪個(gè)sql語句占用資源比較多,就知道哪個(gè)網(wǎng)站的程序問題了。2010-03-03
 深入mysql YEAR() MONTH() DAYOFMONTH()日期函數(shù)的詳解
本篇文章是對(duì)mysql中的YEAR() MONTH() DAYOFMONTH()日期函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
 MYSQL 高級(jí)文本查詢之regexp_like和REGEXP詳解
在MySQL中,regexp_like和REGEXP都是用于執(zhí)行正則表達(dá)式搜索的函數(shù),這篇文章主要介紹了MYSQL 高級(jí)文本查詢之regexp_like和REGEXP,需要的朋友可以參考下2023-05-05
 阿里云centos7使用yum安裝mysql的正確姿勢(shì)(推薦)
這篇文章主要介紹了阿里云centos7使用yum安裝mysql的正確姿勢(shì),需要的朋友可以參考下2017-07-07

