mysql 在表 A 中查找一系列记录,复制到表 B



我现在正在尝试编写一个PHP脚本

  1. 使用唯一的主 ID 搜索数据库中的特定记录。
  2. 然后,它应该在表中搜索与第一条记录的某些字段匹配的记录(例如,查找名称和日期与"记录一"相同的所有条目)
  3. 然后,它应将所有匹配的条目复制到新表中。

现在我让它只抓取一个匹配的条目,然后停止。如何格式化此格式以复制所有条目?

$query = sprintf("SELECT name, date FROM original_table
WHERE id='%s'",
mysql_real_escape_string($id)); 
$result = mysql_query($query);
$row=mysql_fetch_array($result);

//find and copy all matching entries
$query = sprintf("INSERT into second_table(all fields)
SELECT all fields FROM original_table WHERE name='%s' AND date='%s'")

关于我能做些什么来实现这一目标的任何建议?

在 SQL 中,所需的查询是:

INSERT into second_table(all fields)
    SELECT ot.all fields
    FROM (select *
          from original_table ot
          where key = <thekey>
         ) rec join
         original_table ot
         on rec.name = ot.name and
            rec.date = ot.date

是否要排除原始密钥? 如果是这样,请包括"和 rec.key <> ot.key"。

可以使用单个查询进行选择和插入,例如:

INSERT INTO new_table (name, date, etc)
SELECT name, date, etc FROM old_table
WHERE name='%s' AND date='%s'

解释:

第 1 行:定义要插入到新表中
的列第 2 行:从旧表中
选择数据第 3 行:使用 WHERE 或 ON 语句指定要复制的内容

您可能还可以动态创建new_table但在此示例中它已经存在。

相关内容

  • 没有找到相关文章

最新更新