首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql在表A中找到一系列记录,复制到表B

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

Stack Overflow用户
提问于 2012-08-16 02:08:19
回答 2查看 152关注 0票数 1

我现在想写一个PHP脚本

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

现在,我只抓取一个匹配的入口,然后停止。如何将此格式设置为复制所有条目?

代码语言:javascript
复制
$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'")

对于我能做些什么来做到这一点,有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2012-08-16 02:14:48

在SQL中,您需要的查询是:

代码语言:javascript
复制
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”。

票数 1
EN

Stack Overflow用户

发布于 2012-08-16 02:17:47

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

代码语言:javascript
复制
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,但在本例中它已经存在。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11979782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档