0

我有一个 emais 数据列表,例如abc@gmail.com, abc@yahoo.com, asd@gmail.com, asd@yahoo.com, sdf@gmail.com

现在我想将电子邮件域列表过滤为“gmail”,所有数据都应该被过滤并只显示 gmail id 的列表而不是其他电子邮件 id。

我的代码是:

List<String> EmaiList = (List<String>) session.createQuery("select email from UserDto where email like :lk and type" +
                        (isMailStuff ? " in (:mailTypes)" : " not in (:mailTypes)"))
                        .setString("lk", partEmail + "%")
                        .setParameterList("mailTypes", UserType.mailTypes)
                        .list();

在这段代码中,我将 isMailStuff 设置为“真”。现在我可以过滤 gmail 列表,但在某些地方我可以看到其他邮件 id,比如 yahoo 邮件 id。

您能否让我知道此查询中需要任何更改。

问候,拉维

4

2 回答 2

0

http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_substring-index

add

where substring_index(email_column, '@', -1)='gmail.com'
于 2013-09-30T08:36:10.840 回答
0

如果你改变setString这个

.setString("lk", "%" + partEmail + "%")

其中 的值为partEmail@gmail它将返回包含该模式的电子邮件列表@gmail

于 2013-09-30T14:16:55.463 回答