Reputation: 111
I have a MySql data base with a 'user.email' field. I want to update the table to remove everything before the @ symbol so I am just left with a column of email domains. Can't seem to get me query to run. Any help is appreciated!
Upvotes: 11
Views: 8623
Reputation: 44363
Keep everything after '@'
UPDATE users SET email = SUBSTR(email,LOCATE('@',email) + 1)
WHERE LOCATE('@',email) > 0;
Keep everything starting '@'
UPDATE users SET email = SUBSTR(email,LOCATE('@',email))
WHERE LOCATE('@',email) > 0;
Upvotes: 14
Reputation: 166
Assuming your table name is USERS and has EMAIL as column
Before update your email column data would be like [email protected] [email protected]
update users SET email=replace(email,left(email, INSTR(email, '@')-1),'');
After update xyz.com syz.com
If you do not need the @ symbol in the domain then remove '-1' from the query
Upvotes: 2
Reputation: 1529
try this first:
select (SUBSTR(email, INSTR(email, '@') + 1)) from user
if its ok then update as:
update user set email = (SUBSTR(email, INSTR(email, '@') + 1))
Upvotes: 1
Reputation: 1270401
Try this:
select right(email, charindex('@', reverse(email)) - 1)
Upvotes: 2