ใช้ฟังก์ชัน SUBSTRING_INDEX() เพื่อแยกชื่อโดเมนจากที่อยู่อีเมล โดยตัดส่วนหลัง @ แล้ว取 phầnก่อนจุด
สร้างตารางเก็บอีเมล
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserMailId VARCHAR(200)
);
เพิ่มข้อมูลอีเมลตัวอย่าง
mysql> INSERT INTO DemoTable(UserMailId) VALUES ('John9989@facebook.com');
mysql> INSERT INTO DemoTable(UserMailId) VALUES ('983773CS@yahoo.com');
mysql> INSERT INTO DemoTable(UserMailId) VALUES ('Chris95@gmail.com');
ดูข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
+--------+-----------------------+
| UserId | UserMailId |
+--------+-----------------------+
| 1 | John9989@facebook.com |
| 2 | 983773CS@yahoo.com |
| 3 | Chris95@gmail.com |
+--------+-----------------------+
คำสั่งดึงชื่อโดเมน (facebook, yahoo, gmail)
mysql> SELECT UserId, UserMailId,
-> SUBSTRING_INDEX(SUBSTRING_INDEX(UserMailId, '@', -1), '.', 1) AS `Domain_Name`
-> FROM DemoTable;
ผลลัพธ์
+--------+-----------------------+-------------+
| UserId | UserMailId | Domain_Name |
+--------+-----------------------+-------------+
| 1 | John9989@facebook.com | facebook |
| 2 | 983773CS@yahoo.com | yahoo |
| 3 | Chris95@gmail.com | gmail |
+--------+-----------------------+-------------+
คำอธิบาย:
SUBSTRING_INDEX(UserMailId, '@', -1)→ ตัดเอาส่วนหลัง @ (facebook.com)SUBSTRING_INDEX(..., '.', 1)→ ตัดเอาส่วนก่อนจุดแรก (facebook)