2016-03-08 31 views
1

我写这个sql来连接两个表。是否有一些正则表达式会忽略所有以@info.com结尾的电子邮件。我不想在执行查询后打印它们。如何忽略列值的字符串的一部分

SELECT user_data.alternative_mail 
FROM user_data 
RIGHT OUTER 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 

回答

3

您可以使用like直接进行字符串操作。

例如

SELECT user_data.alternative_mail 
FROM user_data 
RIGHT OUTER 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 '%@info.com' 
1

如果我理解正确的话,你可以做到替换为功能:

SELECT replace(user_data.alternative_mail,'@info.com','') 
FROM user_data 
RIGHT OUTER 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 

或者,如果你想从结果中过滤他们来说,你应该使用这样的:

SELECT user_data.alternative_mail 
FROM user_data 
RIGHT OUTER 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 '%@info.com' 
相关问题