0

我有一个表,其中包含由以下分隔的电子邮件地址的列;

TO                                              CC                                  BCC
--------------------------------------------------------------------------------------------------------------------
abc.def@xyz.com;an.yes@xyz.com;no.yes@xyz.com   anna.chris@xyz.com;DL_ABC@xyz.com   raj.alb@xyz.com;doug.amb@xyz.com

用户提供一个电子邮件地址作为搜索条件,我必须查找这些列中的每一列以找到任何列具有目标电子邮件地址的行。

任何人都可以在这里帮助我吗?

我尝试使用reg_exp但在那里没有太多经验。

4

2 回答 2

2

简单的方法:

SELECT * FROM emailtable
WHERE INSTR(';' || to || ';' || cc || ';' || bcc || ';'
           ,';' || :search_parameter || ';') > 0;
于 2013-10-10T06:08:32.127 回答
0

根据您的要求以及我从您对 Jeffery Kemp 回答的评论中得到的信息,我建议您尝试以下操作:

SELECT *
  FROM emailtable
 WHERE lower(REPLACE ("TO" || ';' || cc || ';' || bcc, ' ', ''))
       LIKE '%' || lower(REPLACE (:search_parameter, ' ', '')) || '%'

lower功能帮助我们进行不区分大小写的搜索。REPLACE消除空格。

我希望这能给你一个线索。这是通过 to、cc 和 bcc 列搜索电子邮件 ID 的一部分的最简单方法。请WHERE根据您的要求修改条件。

于 2013-10-10T07:30:23.757 回答