반응형
내 데이터베이스에는 전자 메일 주소를 잘못 입력 한 사용자가 많이 있습니다. 이로 인해 뉴스 레터를 보낼 때 내 postfix가 많은 메일을 반송하게됩니다.
Forms include (but are not limited to) "yaho.com", "yahho .com" etc.
매우 짜증나!
그래서 저는 그 기록을 올바른 값으로 업데이트하려고 노력하고 있습니다.
'% @ yaho %'와 같은 이메일과 '% yahoo %'와 같은 이메일이 아닌 사용자의 이메일 선택
을 실행하고 목록을 얻은 후 업데이트 방법 만 모르기 때문에 멈췄습니다. yaho
부분. 사용자 이름을 그대로 유지해야합니다.
그래서 데이터베이스를 덤프하고 vim을 사용하여 교체 할 것이라고 생각했지만 @
기호를 이스케이프 할 수 없습니다 ..
BTW, CAPS로 작성된 모든 이메일 주소를 어떻게 선택합니까? select upper (email) from users;
는 모든 것을 CAPS로 변환하는 반면, 이미 작성된 캡스 메일을 찾아야했습니다.
해결 방법
다음과 같은 것을 시도해 볼 수 있습니다.
UPDATE users
SET email = CONCAT(LEFT(email, INSTR(email, '@')), 'yahoo.com')
WHERE email LIKE '%@yaho.com%';
테스트 케이스 :
CREATE TABLE users (email varchar(50));
INSERT INTO users VALUES ('test1@yahoo.com');
INSERT INTO users VALUES ('test2@yaho.com');
INSERT INTO users VALUES ('test3@yahoo.com');
UPDATE users
SET email = CONCAT(LEFT(email, INSTR(email, '@')), 'yahoo.com')
WHERE email LIKE '%@yaho.com%';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
SELECT * FROM users;
+-----------------+
| email |
+-----------------+
| test1@yahoo.com |
| test2@yahoo.com |
| test3@yahoo.com |
+-----------------+
3 rows in set (0.00 sec)
SELECT * FROM users WHERE email COLLATE latin1_general_cs = UPPER(email);
테스트 케이스 :
INSERT INTO users VALUES ('TEST4@YAHOO.COM');
SELECT * FROM users;
+-----------------+
| email |
+-----------------+
| test1@yahoo.com |
| test2@yahoo.com |
| test3@yahoo.com |
| TEST4@YAHOO.COM |
+-----------------+
4 rows in set (0.00 sec)
SELECT * FROM users WHERE email COLLATE latin1_general_cs = UPPER(email);
+-----------------+
| email |
+-----------------+
| TEST4@YAHOO.COM |
+-----------------+
1 row in set (0.00 sec)
참조 페이지 https://stackoverflow.com/questions/2913861
반응형
'MySql' 카테고리의 다른 글
MySQL에 의해 구동되는 Hibernate 기반 Java Servlet 애플리케이션에서 Hibernate Communications Link 실패 (0) | 2020.11.23 |
---|---|
MySQL mySQL에서 두 테이블에서 선택하고 열을 병합 할 수 있습니까? (0) | 2020.11.22 |
MySQL OUTPUT Inserted.row in mysqli (0) | 2020.11.22 |
MySQL Mysql2 :: Error : 테이블이 존재하지 않습니다 : '세션'에서 전체 필드 표시 (0) | 2020.11.22 |
MySQL UTC에서 IST로 변환하는 mysql (0) | 2020.11.22 |
댓글