Regex 用于电子邮件打印的PostgreSQL正则表达式

Regex 用于电子邮件打印的PostgreSQL正则表达式,regex,postgresql,Regex,Postgresql,我写了这个查询,但是现在我想忽略所有在@之后有这个字符串abv的电子邮件(都有大写或小写字母)。希望有人能帮忙 SELECT user_data.alternative_mail FROM user_data JOIN users_map ON users_map.user_id = user_data.user_id WHERE users_map.service_id = 1 AND users_map.service_user_id = 0 AND user_data.al

我写了这个查询,但是现在我想忽略所有在
@
之后有这个字符串
abv
的电子邮件(都有大写或小写字母)。希望有人能帮忙

SELECT user_data.alternative_mail
FROM user_data
JOIN users_map
  ON users_map.user_id = user_data.user_id
WHERE users_map.service_id = 1 
  AND users_map.service_user_id = 0 
  AND user_data.alternative_mail NOT LIKE '%@abv.bg'
  AND user_data.alternative_mail IS NOT NULL 
  AND user_data.alternative_mail <> '';
选择用户\u数据。备选\u邮件
从用户数据
加入用户
ON users\u map.user\u id=user\u data.user\u id
其中users\u map.service\u id=1
和用户\u map.service\u用户\u id=0
和用户\u data.alternative\u邮件不同于“%@abv.bg”
和用户\u data.alternative\u邮件不为空
和用户_数据。可选_邮件“”;

使用
ILIKE
而不是
LIKE
()根据活动区域设置使匹配不区分大小写

顺便说一句:
LIKE
不使用正则表达式

试试这个:

SELECT user_data.alternative_mail
FROM user_data
JOIN users_map
  ON users_map.user_id = user_data.user_id
WHERE users_map.service_id = 1 
  AND users_map.service_user_id = 0 
  AND user_data.alternative_mail NOT ILIKE '%@%abv%'
  AND user_data.alternative_mail IS NOT NULL 
  AND user_data.alternative_mail <> '';
选择用户\u数据。备选\u邮件
从用户数据
加入用户
ON users\u map.user\u id=user\u data.user\u id
其中users\u map.service\u id=1
和用户\u map.service\u用户\u id=0
和用户\u数据。可选\u邮件不象“@%abv%”
和用户\u data.alternative\u邮件不为空
和用户_数据。可选_邮件“”;