MySql使用通配符生成基于参数的结果

时间:2016-01-12 16:19:26

标签: mysql

例如我有表邮件

id | wildcard
------------------
1  | %@hotmail.com

我可以使用存储的通配符邮件

轻松查看电子邮件
Select * From mail where 'abcde@hotmail.com' like wildcard;

现在我想查看不同邮件的列表。例如('bar @ hotmail.com',bar @ webmail.com,'foo @ hotmail.com')。当然,我可以迭代列表并检查每一封邮件,但我会查看一个解决方案,用一个查询检查所有邮件。类似于(对于示例列表)我可以看到触发的通配符和已检查的电子邮件本身

email | wildcard
----------------
bar@hotmail.com | %@hotmail.com
foo@hotmail.com | %@hotmail.com

这可能吗?

修改: 换言之,澄清我的意图。示例邮件表具有超过> 1000个通配符。我有一个> 10000的邮件地址。现在我想从这个数量中获取所有邮件地址,这将触发至少一个通配符。我可以使用许多数据库请求(检查每个邮件),但我更喜欢用单个数据库请求执行此操作。我的事实会有所帮助:它自己的邮件存储在另一张表中。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

我认为你打算这样做

SELECT *
FROM mail
WHERE email like '%@hotmail.com'

答案 1 :(得分:0)

你可能正在寻找这样的东西:

SET @wildcard = '@hotmail.com';
SET @wildcard2 = 'foo';

SELECT email, @wildcard as wildcard
FROM mail
WHERE email LIKE CONCAT('%', @wildcard);

SELECT email, @wildcard2 as wildcard
FROM mail
WHERE email LIKE CONCAT(@wildcard2, '%');