2016-03-08 47 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'