首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL数据库中将某些地址标记为已发送?

问如何在MySQL数据库中将某些地址标记为已发送?
EN

Stack Overflow用户
提问于 2012-05-09 05:10:28
回答 2查看 40关注 0票数 0

我有一个数据库中充满了70k的名字,地址等,我也有一个3万个地址的名单,订单已经发送到。

现在,我有以下MySQL语句:

代码语言:javascript
复制
UPDATE `order_requests`
  SET `exported_sent`='sent_2012_05_07'
WHERE `request_address` IN (SELECT `request_address` FROM sent_list)

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

PS。我正在编写一个php脚本,这样我就不需要再次手动操作了,但是之前的人做错了,所以我正在修复这个问题!谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-09 05:12:50

使用join可能会更快

代码语言:javascript
复制
UPDATE `order_requests` JOIN sent_list USING(request_address) SET `exported_sent`='sent_2012_05_07';

如果没有连接,MySQL很可能会为order_requests中的每一行重新执行查询SELECT request_address FROM sent_list。

票数 2
EN

Stack Overflow用户

发布于 2012-05-09 05:13:54

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

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

https://stackoverflow.com/questions/10506559

复制
相关文章

相似问题

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