我有一个表,我想复制表中的特定行。我知道这不是做事情的最佳方法,但我们正在寻找一种快速的解决方案。
这比我最初想的要难,我要做的就是将整个记录复制到MySql中自动增量表中的新记录,而无需指定每个字段。这是因为该表将来可能会更改,并且可能会中断重复。我将从PHP复制MySQL记录。
这是一个问题,因为在’SELECT *’查询中,MySql将尝试复制要复制的记录的ID,这会产生重复的ID错误。
这将阻止: INSERT INTO customer SELECT * FROM customer WHERE customerid=9181
。它也封锁了INSERT INTO customer (Field1, Field2, ...) SELECT Field1, Field2, ..... FROM customer WHERE customerid=9181.
有没有办法从PHP或MySQL执行此操作?
我终于找到了这段代码。我相信它将对将来的人们有所帮助。就是这样。
function DuplicateMySQLRecord ($table, $id_field, $id) {
// load the original record into an array
$result = mysql_query("SELECT * FROM {$table} WHERE {$id_field}={$id}");
$original_record = mysql_fetch_assoc($result);
// insert the new record and get the new auto_increment id
mysql_query("INSERT INTO {$table} (`{$id_field}`) VALUES (NULL)");
$newid = mysql_insert_id();
// generate the query to update the new record with the previous values
$query = "UPDATE {$table} SET ";
foreach ($original_record as $key => $value) {
if ($key != $id_field) {
$query .= '`'.$key.'` = "'.str_replace('"','\"',$value).'", ';
}
}
$query = substr($query,0,strlen($query)-2); # lop off the extra trailing comma
$query .= " WHERE {$id_field}={$newid}";
mysql_query($query);
// return the new id
return $newid;
}
这是文章http://www.epigroove.com/posts/79/how_to_duplicate_a_record_in_mysql_using_php的链接
问题内容: 我已经寻找了一段时间,但找不到适合我问题的简单解决方案。我想在表中复制一条记录,但是当然,唯一的主键需要更新。 我有这个查询: 问题在于,这只是更改行的,而不是复制行。有人知道如何解决这个问题吗? // edit:我想在不键入所有字段名称的情况下执行此操作,因为字段名称会随着时间变化。 问题答案: 我通常使用的方法是使用临时表。它可能在计算上效率不高,但看起来还可以!在这里,我要完全复
问题内容: 我想在MySQL数据库中提取重复记录。这可以通过以下方式完成: 结果是: 我想将其拉出,以使其显示重复的每一行。就像是: 关于如何做到这一点有什么想法?我试图避免做第一个,然后在代码中用第二个查询查找重复项。 问题答案: 关键是重写此查询,以便可以将其用作子查询。
问题内容: 我应该使用MySQL复制来同步本地数据库和远程数据库吗?如果是这样,我该如何设置主机和从机?还有其他方法可以做到这一点吗? 问题答案: 如何设置主/从? 此复制:如何指导同时具有您需要在主服务器和从服务器上进行的操作。 任何其他可用于执行此操作的方法 还有MySQL群集的多主复制和循环复制。
问题内容: 我有桌子,下面的结构。 tbl 查询返回以下结果: 与AAA和BBB重复的名称。我想要的最终结果是此重复记录的计数。 结果应该是这样的:共有重复产品( 2 ) 问题答案: 该方法是使用一个嵌套查询,每个重复项有一行,而一个外部查询仅返回内部查询结果的计数。
请帮助我…每当我启动xammp服务器并尝试启动mysql时,它会出现如下错误。。。
问题内容: 关闭。 这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 8年前关闭。 改善这个问题 我在使用MySQL的数据库上执行SQL查询,但仅从预期的24000行中获取了前1000行。如果将结果导出到XML表单,我将再次获得前1000个。有没有办法禁用该限制并取回所有行?否则,我将不得不合并24个XML文件:/ 问题答案: 请执行