我这里有两个表:一个包含订阅者电子邮件列表:
(ID, email)
Run Code Online (Sandbox Code Playgroud)
另一个包含域名列表:
(ID, domain)
Run Code Online (Sandbox Code Playgroud)
我想找出一个sql语句,允许我使用select *属于域表中列出的域的电子邮件地址,假设所有电子邮件都是以下形式:
name@domain
Run Code Online (Sandbox Code Playgroud)
这可以在sql中完成还是我需要为此编写脚本?
您应该能够执行以下操作:
SELECT
sub_emails.email
FROM
sub_emails
INNER JOIN
list_domains ON
(sub_emails.email LIKE concat('%@', list_domains.domain_name));
Run Code Online (Sandbox Code Playgroud)
请注意,这将需要全表扫描sub_emails,因为MySQL还不支持基于函数的索引.因此,如果sub_emails包含许多记录,这将变得非常慢.
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |