Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ดึงชื่อโดเมนจากอีเมลด้วย SUBSTRING_INDEX ใน MySQL

ใช้ฟังก์ชัน 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)