绘图:我有一个带有2个数据库的PAD网站:submitdata和maindata。
submitdata DB将所有列作为maindata DB加上另外3列:
主数据列:名称链接电子邮件网站。。。。程序ID
提交数据列:名称链接电子邮件网站。。。。程序ID,反向链接,附属ID
我必须将所有行从submitdata DB移动到maindata DB,但前提是反向链接!=''如果是附属的!=附属于。
另一个问题是如果progid在maindata数据库中已经准备好了,在这种情况下,我必须用新的数据更新该行
... 另一个问题是我有大约40000行,所以从submitdata中选择*可能会杀死我的计算机。
在PHP中如何做到这一点?

最佳答案

试试这个:

EXPLAIN SELECT * FROM submitdata;

也许它会告诉您可以为哪些字段提供索引(这会大大加快查询时间)。然后,如果不移动backlink和affiliateid字段为空的记录,则可以通过添加WHERE子句来减少查询的结果集。
$result = mysql_query('SELECT * FROM submitdata WHERE backlink <> "" AND affiliateid <> ""');
if ($result) {
    while ($row = mysql_fetch_assoc($result)) {
        $newResult = mysql_query(sprintf('SELECT name,progid FROM maindata WHERE progid = %d', $row['progid']));
        $row2 = mysql_fetch_row($newResult);
        if ($row2) {
            // do UPDATE query
        } else {
            // do INSERT query
        }
    }
}

10-08 10:57