কম্পিউটার টিউটোরিয়াল

MySQL에서 이메일 주소로 특정 레코드 업데이트하기

WHERE 절에 이메일 컬럼 조건을 걸면 해당 이메일을 가진 레코드만 업데이트할 수 있습니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable (
    -> EmailAddress VARCHAR(20),
    -> Score INT
    -> );
Query OK, 0 rows affected (1.05 sec)
mysql> INSERT INTO DemoTable VALUES('Chris@gmail.com',67);
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable VALUES('Robert@gmail.com',57);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable VALUES('David@gmail.com',98);
Query OK, 1 row affected (0.14 sec)

업데이트 전 데이터

mysql> SELECT * FROM DemoTable;
+------------------+-------+
| EmailAddress     | Score |
+------------------+-------+
| Chris@gmail.com  |    67 |
| Robert@gmail.com |    57 |
| David@gmail.com  |    98 |
+------------------+-------+
3 rows in set (0.00 sec)

이메일로 특정 레코드 업데이트

mysql> UPDATE DemoTable
    -> SET Score = 89
    -> WHERE EmailAddress = 'Robert@gmail.com';
Query OK, 1 row affected (0.25 sec)
Rows matched: 1  Changed: 1  Warnings: 0

업데이트 후 데이터

mysql> SELECT * FROM DemoTable;
+------------------+-------+
| EmailAddress     | Score |
+------------------+-------+
| Chris@gmail.com  |    67 |
| Robert@gmail.com |    89 |
| David@gmail.com  |    98 |
+------------------+-------+
3 rows in set (0.00 sec)

주의: 이메일 컬럼에 인덱스가 없으면 전체 테이블 스캔이 발생합니다. 대용량 테이블에선 이메일 컬럼에 인덱스를 생성하는 것이 좋습니다. 또한 이메일은 대소문자 구분이 없으므로 LOWER(EmailAddress) = LOWER('...')로 비교하는 것이 안전합니다.

  1. MySQL-এ INET_ATON() ব্যবহার করে IP ঠিকানা অনুযায়ী সর্ট করা

  2. MySQL-এ শুধু একটি কলাম আপডেট করা

  3. MySQL-এ ব্ল্যাংক (খালি) মান গুলো NULL-এ আপডেট করা

  4. MySQL-এ একটি কলাম আপডেট করার সেরা পদ্ধতি (UPDATE SET)