我在不同的mysql数据库中有两个表。
我想从表A复制到表B.只有一种方法。 我需要从表B中读取最后一个日期时间,然后检查在此readed datetime之后是否有任何数据添加到表A.如果添加了一些数据,则复制它。
我试过了:
如果我刷新页面,它会写一行,但我需要它在一次加载中写入所有内容!
do
{
#TABLE A
$querylastA = "SELECT * FROM `stock` ORDER BY `jrk` DESC LIMIT 1";
$resultlastA = mysql_query($querylastA) or die(mysql_error());
while($rows=mysql_fetch_array($resultlastA)){
$lastcodeA = $rows['datetime'];
}
#TABLE B
$querylastB = "SELECT * FROM `stockcopy` ORDER BY `jrk` DESC LIMIT 1";
$resultlastB = mysql_query($querylastB) or die(mysql_error());
while($rows=mysql_fetch_array($resultlastB)){
$lastcodeB = $rows['datetime'];
}
#TABLE A - NEXT DATE AFTER LAST DATE IN TABLE B
$querynextA = "SELECT datetime FROM stock WHERE datetime > '$lastcodeB' ORDER BY datetime ASC LIMIT 1";
$resultnextA = mysql_query($querynextA) or die(mysql_error());
while($rows=mysql_fetch_array($resultnextA)){
$nextcodeA = $rows['datetime'];
}
mysql_query("INSERT INTO stockcopy(datetime, data1, data2) SELECT datetime, data1, data2 FROM stock WHERE datetime = '$nextcodeA'");
echo "Date from table A " . $lastcodeA . "<br>";
echo "Date from table B " . $lastcodeB . "<br>";
}
while ('$lastcodeA' == '$lastcodeB');
答案 0 :(得分:1)
您可以使用SELECT
语句在表格中插入数据,因此您需要做的只是将条件放在SELECT
中。
例如:
INSERT INTO table_example(foo, bar)
SELECT foo, bar FROM table_example2
WHERE time_condition > {SOME DATE}
这将向table_example插入SELECT
语句返回的行,这些行是满足时间条件的行。您需要将{SOME DATE}替换为实际日期(不带括号)。
另请参阅:INSERT with SELECT
答案 1 :(得分:0)
你可以在很少或根本不知道SQL的情况下做到这一点,但有一点创造力:)
创建一个临时表(table_c
),并在那里复制table_a
的内容。
然后手动(这意味着在phpmyadmim中运行删除查询)删除不再重要的信息(例如DELETE FROM table_c WHERE id < 1000
)。
然后,从table_c
导出信息并将其导入table_b
(并删除table_c
答案 2 :(得分:0)
问题在于:while ('$lastcodeA' == '$lastcodeB');
将其更改为:while ($lastcodeA != $lastcodeB);
现在可以使用了!谢谢大家:))