Heim > Datenbank > MySQL-Tutorial > MySQL如何复制表中的一条记录并插入

MySQL如何复制表中的一条记录并插入

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 16:24:17
Original
1959 Leute haben es durchsucht

先把需求说一下吧。从 MSSQL 中导出一个文章表,需要插入到 PHPCMS 中的内容表 phpcms_content 去,需要做到文章可以发布到不同的栏目中去。也就是说,需要复制一条记录,并修改其 catid,再插入到表尾的位置上。 MySQL 复制一条数据并插入的语句: INSERT I

先把需求说一下吧。从 MSSQL 中导出一个文章表,需要插入到 PHPCMS 中的内容表 phpcms_content 去,需要做到文章可以发布到不同的栏目中去。也就是说,需要复制一条记录,并修改其 catid,再插入到表尾的位置上。

MySQL 复制一条数据并插入的语句:

INSERT INTO phpcms_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, prefix FROM phpcms_content WHERE contentid = '".$r[$i-1]['aid']."')
Nach dem Login kopieren

大致为:insert into a SELECT id+1, ...(其它字段) FROM a ;

下面PHP具体程序:

$query  = "SELECT * FROM articleincategory ORDER BY ArticleID  ";
$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 = " INSERT INTO phpcms_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, prefix FROM phpcms_content WHERE contentid = '".$r[$i-1]['aid']."') ";
			//$sql = " INSERT INTO phpcms_c_news (SELECT ".$r[$i]['aid']." + 520, template, titleintact, content, groupids_view, readpoint, author, copyfrom, paginationtype, maxcharperpage, sub_title FROM phpcms_c_news WHERE contentid = '".$r[$i-1]['aid']."')  ";
			echo $sql.'<br />';
			//$result = $connector -> query($sql);
			//INSERT INTO test (SELECT id + 10, name, class, score FROM test WHERE id = '1');
		}
		
		else if( $r[$i]['aid'] != $r[$i-1]['aid'] )
		{
			$sql = " UPDATE phpcms_content SET origin_cateid = '".$r[$i]['cateid']."' WHERE contentid = '".$r[$i]['aid']."'  ";
			echo $sql.'<br />';
			//$result = $connector -> query($sql);
		}
		
	}
}
Nach dem Login kopieren

如果不需要插入,则更简单:insert into mytable (select * from mytable where id=1) ON DUPLICATE KEY UPDATE id=2;

或者: update mytable set id=2 where id=1;

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
So ändern Sie MySQL in MySQL
Aus 1970-01-01 08:00:00
0
0
0
MySQL-Startfehler unter Centos
Aus 1970-01-01 08:00:00
0
0
0
MySQL stoppt den Prozess
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage