ドメイン部分を取得する
以下のSQLでメールアドレスのドメイン部分だけの一覧を取得することが出来ます。
select right(email, char_length(email) - instr(email, '@')) from users;
解説
right
文字列を右から指定した文字数だけ取得します。
char_length
文字列の長さを取得します。
instr
最初に指定の文字が出現する位置を返します。
全体で
メールアドレスを(文字数の全体 - @が表示される位置)の文字数右から取る。というロジックです。
メールアドレスを書き換える場合
以下のようにすることでメールアドレスのドメインを特定のドメインに一括で書き換えることが出来ます。
update users set email = concat(left(email, INSTR(email, '@')), 'macloud.jp') where 'email' not like '%@macloud.jp'