mysql - 大 IN 语句 - 来自电子表格的数据

标签 mysql sql

我有一个这样的表:

People
-----------------
email_address
created_date

我还有一个电子表格,其中包含大约 60,000 个电子邮件地址。我需要为电子表格中的每个电子邮件地址选择“created_date”。我目前处理它的方法是创建一个带有 IN 子句的大选择语句:

SELECT email_address, created_date FROM People WHERE email_address in (
'<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="01747264733041726e6c647569686f662f626e6c" rel="noreferrer noopener nofollow">[email protected]</a>',
'<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3643455344047645595b53425e5f58511855595b" rel="noreferrer noopener nofollow">[email protected]</a>',
'<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="96e3e5f3e4a5d6e5f9fbf3e2fefff8f1b8f5f9fb" rel="noreferrer noopener nofollow">[email protected]</a>',
...

问题在于,它是一个巨大的脚本(60,000 多行),由于诸如“得到的数据包大于‘max_allowed_pa​​cket’字节”和“MSQL Server 已经消失”之类的错误,我什至无法运行它离开”。

我也许可以通过增加 max_allowed_pa​​cket 等来修复这些错误,但我有一种感觉,这可能只是我的 SQL 很糟糕的一个症状,而不是仅仅治疗症状,我应该解决问题并写得更好SQL。如果您有任何建议,请告诉我!

最佳答案

将电子邮件地址加载到单独的一栏表格中并使用

 SELECT email_address, created_date FROM People 
    WHERE email_address IN (SELECT email_address FROM email_table)

关于mysql - 大 IN 语句 - 来自电子表格的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4647775/

相关文章:

python - MySQL存储中文单词时,变成乱码

mysql - SQL 中的 if 语句

mysql - 如何使这个缓慢的查询更快

MYSQL GROUP_CONCAT 与 ORDER BY 奇怪的排序结果

mysql - 查询忽略前 2 行

java - 如何使用 BlueJ 和 Wampserver 修复 "java.lang.ClassNotFoundException: com.mysql.jdbc.Driver"

MySQL Workbench 重命名约束

mysql - 如果满足条件,则将值替换为其他值

mysql - 如何插入空行,但自动编号更新正确?

sql - 使用like运算符从两个表中查询SQL