【问题标题】:Trasferring a list of rows from one table to another将行列表从一个表传输到另一个表
【发布时间】:2013-01-02 12:26:14
【问题描述】:

我到处搜索,但找不到可行的解决方案。也许我不会以正确的方式解决这个问题。 我有一个 ID 数组中的逗号分隔值列表,它引用了“temp_image”表中的 image_id。现在我需要在该数组中选择所有带有 image_id 的图像的所有信息,并将它们从“temp_image”表转移到“images”表。

$IMgids = 数组(1,2,3,4,5,9); ETC 我的查询看起来如何? 我的 where 子句应该是什么样的。 我对转移一行感到满意,但在这种情况下,它可能多达 50 行。 有什么想法可以解决这个问题吗?

【问题讨论】:

  • 你能给出你的表结构吗
  • 抱歉,我认为不需要表结构,因为问题是“如何从一个表中选择多行并将其传输到另一个表”。任何具有唯一 ID 的表结构都是一样的,只要它不是关系型的。

标签: php mysql sql pdo mysqli


【解决方案1】:

根据您发布的少量信息,我想说您需要这两个细节:

  1. WHERE 子句的IN 运算符,以便您可以一次引用数组引用的所有条目:SELECT ... FROM ... WHERE id IN (1,2,3,4,5,9);。您可能希望使用 phps implode() 函数在子句内构造 id 集:implode(',',$IMgids)

  2. 从另一个表中读取的多行插入一个表的子查询原理。为此请查阅 mysql(在线)文档。像这样的东西:INSERT INTO images (SELECT * FROM temp_images WHERE...);

【讨论】:

  • 我还试图找到类似将多行插入到一个表中的方法,这些行是从另一个表中读取的,但没有成功,我必须通过函数调用来完成。上述问题的链接将不胜感激。
  • 哈,谢谢。正是我需要的。我现在正在实施它:)
  • @chetan:按照 arkascha 的想法,您可以在不到 7 行查询中完成。
猜你喜欢
  • 2012-05-07
  • 1970-01-01
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
相关资源
最近更新 更多