MySQL中整条记录复制并插入方法 大致方法是先查出所需要复制到记录然后财插入,条件是两个表的记录结果数据类型都必须完全一样才行.
从 MSSQL 中导出一个文章表,需要插入到 PHPCMS 中的内容表 phpcms_content 去,需要做到文章可以发布到不同的栏目中去,也就是说,需要复制一条记录,并修改其 catid,再插入到表尾的位置上,代码如下:
- INSERTINTOphpcms_content(SELECT".$r[$i]['aid']."+520,".$r[$i]['cateid'].",news_catid,catid,typeid,areaid,title,style,thumb,keywords,keywords,posids,url,listorder,status,userid,username,inputtime,updatetime,searchid,islink,prefixFROMphpcms_contentWHEREcontentid='".$r[$i-1]['aid']."')
大致为:insert into a SELECT id+1, ...(其它字段) FROM a ;
下面PHP具体程序,代码如下:
- $query="SELECT*FROMarticleincategoryORDERBYArticleID";
- $result=$connector->query($query);
- $i=0;
- while($myrow=$connector->fetch_array($result))
- {
- $r[$i]['aid']=$myrow["ArticleID"];
- $r[$i]['cateid']=$myrow["CategoryID"];
- $i++;
- }
- for($i=0;$i<count($r);$i++)
- {
- if($i>0)
- {
- if($r[$i]['aid']==$r[$i-1]['aid'])
- {
- echo'第'.$i.'条数据'.$r[$i]['aid'].'与前一条数据'.$r[$i-1]['aid'].'重复'.'<br/>';
- $sql="INSERTINTOphpcms_content(SELECT".$r[$i]['aid']."+520,".$r[$i]['cateid'].",news_catid,catid,typeid,areaid,title,style,thumb,keywords,keywords,posids,url,listorder,status,userid,username,inputtime,updatetime,searchid,islink,prefixFROMphpcms_contentWHEREcontentid='".$r[$i-1]['aid']."')";
- //$sql="INSERTINTOphpcms_c_news(SELECT".$r[$i]['aid']."+520,template,titleintact,content,groupids_view,readpoint,author,copyfrom,paginationtype,maxcharperpage,sub_titleFROMphpcms_c_newsWHEREcontentid='".$r[$i-1]['aid']."')";
- echo$sql.'<br/>';
- //$result=$connector->query($sql);
- //INSERTINTOtest(SELECTid+10,name,class,scoreFROMtestWHEREid='1');
- }
- elseif($r[$i]['aid']!=$r[$i-1]['aid'])
- {
- $sql="UPDATEphpcms_contentSETorigin_cateid='".$r[$i]['cateid']."'WHEREcontentid='".$r[$i]['aid']."'";
- echo$sql.'<br/>';
- //$result=$connector->query($sql);
- }--phpfensi.com
- }
- }
如果不需要插入,则更简单:insert into mytable (select * from mytable where id=1) ON DUPLICATE KEY UPDATE id=2;