gpt4 book ai didi

php - 将字段从一个表复制到另一个表

转载 作者:行者123 更新时间:2023-12-01 00:01:47 31 4
gpt4 key购买 nike

我正在遍历一组值 $id,在某些情况下我需要将 2 个数据字段从一个表(产品)复制到另一个表(product_new)。两个表都已经存在并且都包含相同的字段“product_description”和“image”。我正在尝试这样做:

$copy_query = "SELECT product_description, image INTO product_new FROM product WHERE product_id=$id";
$result = mysql_query($copy_query) or die('Could not copy the database data: ' . mysql_error() . '<br>Query: ' . $copy_query);

错误是“未声明的变量:product_new”。我不明白这一点,因为我对表 product_new 执行其他操作没有问题。有什么想法吗?谢谢。

更新

感谢您提供指向差异文档的链接。这绝对有帮助,但我还有一个问题。我当前的查询是:

$copy_query = "INSERT INTO product_new (product_description, image)
SELECT product.product_description, product.image
FROM product
WHERE product_id=$id";

但这是将数据写入 product_id = 0 的新行。我需要它写入 product_id = $id 的行。

最佳答案

MySQL 不支持 SELECT INTO 语法。

此外,在循环内运行查询通常效率很低。相反,您可以在 PHP 中制作一个逗号分隔的 id 列表并使用:

$copy_query = '
INSERT INTO product_new (product_description, image)
SELECT product_description, image
FROM product
WHERE product_id IN (' . implode(',', $ids) . ')';

mysql_query($copy_query);

$ids 是您的 ID 数组。

这个解决方案只需要执行一次(而不是在一个循环中执行多次)。


编辑:如果您已经有行存在于 product_new 中并且您想要更新它们,您可以使用:

$copy_query = '
UPDATE product_new a
JOIN product b ON a.product_id = b.product_id
AND b.product_id IN (' . implode(',', $ids) . ')
SET a.product_description = b.product_description,
a.image = b.image';

mysql_query($copy_query);

关于php - 将字段从一个表复制到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995999/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com