【发布时间】:2016-05-28 15:09:33
【问题描述】:
我有一张名为flights 的表格,其中reservationNum 列是每个航班预订的确认号(8 位数字)
我有一个名为sentEmails 的表,其中body 列是已发送电子邮件的正文。电子邮件所针对的预订的 8 位确认号位于 body 列中存储的文本中。
我需要从 sentEmails 中提取主题包含 Some text 的所有行,但我还需要与该预订关联的 flights 表行中的一些其他信息
我想我也许可以像下面这样在正则表达式匹配中加入表格:
Select *
from sentEmails se
join flights f on f.reservationNum = se.body REGEXP '\d{8}'
where subject like '%Some text%'
and sentDate > '2016-02-01'
对于第一行,这似乎可以从两个表中提供信息。不幸的是,来自flights 的数据不正确,在第一行之后,所有剩余行都具有相同的sentEmails 数据,而flights 列没有数据
是否可以在 MySQL 的 REGEX 匹配中连接两个表?如果没有,我该如何检索所需的数据?
注意鉴于电子邮件中的标准化内容,我可以 100% 确定每个包含的唯一 8 位数字是我需要的数字
【问题讨论】:
-
最好创建一个包含您需要加入的信息的临时表。那个正则表达式的表现会很糟糕。
-
这样做是个坏主意。因为您没有 100% 保证电子邮件中的 8 位数字是确认号。
-
@RobertHarvey 说的很对,你能告诉我怎么做吗?我不知道如何从电子邮件中实际获取确认号,以便我可以使用它,这是 2 个表的唯一共同点
-
@SiZE 鉴于电子邮件中的标准化内容,我可以 100% 确定它包含的唯一 8 位数字就是我需要的数字
-
告诉他们用正则表达式半途而废要花多少钱(价值数千美元),也许他们会加快您的请求。