0

我有一个包含 70,000 个姓名、地址等的数据库。我还有一个包含 30,000 个地址的列表,这些地址已经发送到了订单。

现在我有以下 MySQL 语句:

UPDATE `order_requests`
  SET `exported_sent`='sent_2012_05_07'
WHERE `request_address` IN (SELECT `request_address` FROM sent_list)

我觉得这应该可行,唯一的问题是涉及的查询太多以至于 phpMyAdmin 一直超时。不幸的是,我只能匹配 fname、lname、地址、zip 等内容,因为这两个表没有通过公共 id 或类似的东西链接。

PS。我正在编写一个 php 脚本,这样我就不必再次手动执行此操作,但我之前的人做错了,所以我正在解决问题!谢谢!

4

2 回答 2

2

加入连接可能会快得多

UPDATE `order_requests` JOIN sent_list USING(request_address) SET `exported_sent`='sent_2012_05_07';

如果没有连接,MySQL 很可能会重新SELECT request_address FROM sent_list执行order_requests.

于 2012-05-08T21:12:49.937 回答
0

由于标准浏览器超时,phpMyAdmin 可能会超时。您是否尝试过通过命令行 MySQL 客户端运行查询?它不应受到相同的默认超时的影响。

于 2012-05-08T21:13:54.280 回答