Для первого вопроса я бы выбрал что-то вроде
UPDATE users
SET email = INSERT(email,INSTR(email,'@'), LENGTH(email), '@yahoo.com')
WHERE email LIKE '%@yaho.com'
Просто ради тщательности, это многобайтовый сейф, хотя я использовал LENGTH
. Все, что нужно, это чтобы третий аргумент INSERT
был хотя бы таким же большим, как конец подстроки.
Синтаксический ответ о поиске электронного письма с заглавными буквами - хороший ответ. Возможно, выполнение немного быстрее, хотя вы, вероятно, не заметите разницу, это
SELECT email FROM users WHERE BINARY(email) NOT REGEXP '[a-z]'
Обновление: BINARY(email)
необходимо для принудительного сопоставления с учетом регистра.