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

ดึงข้อความก่อน @ ในอีเมลด้วย MySQL

ใช้ฟังก์ชัน SUBSTRING_INDEX() เพื่อดึงส่วนก่อนอักขระ @ ในอีเมล

ไวยากรณ์

SELECT SUBSTRING_INDEX(yourColumnName, '@', 1) FROM yourTableName;

พารามิเตอร์: SUBSTRING_INDEX(str, delim, count)

  • count > 0: คืนค่าส่วนซ้ายสุด จำนวน count ส่วน (นับจากซ้าย)
  • count < 0: คืนค่าส่วนขวาสุด จำนวน |count| ส่วน (นับจากขวา)

ตัวอย่างการใช้งาน

1. สร้างตารางและข้อมูลอีเมล

mysql> create table DemoTable (EmployeeMailId varchar(100));
mysql> insert into DemoTable values('Larry123@gmail.com'), ('987Sam@hotmail.com'), ('123456David_98@gmail.com');

2. ดึงส่วนก่อน @

mysql> select substring_index(EmployeeMailId, '@', 1) from DemoTable;

ผลลัพธ์

+---------------------------------------+
| substring_index(EmployeeMailId, '@', 1) |
+---------------------------------------+
| Larry123                              |
| 987Sam                                |
| 123456David_98                        |
+---------------------------------------+

การประยุกต์ใช้เพิ่มเติม

-- ดึงโดเมน (ส่วนหลัง @)
SELECT SUBSTRING_INDEX(EmployeeMailId, '@', -1) FROM DemoTable;

-- นับจำนวน @ (ตรวจสอบรูปแบบอีเมล)
SELECT (LENGTH(EmployeeMailId) - LENGTH(REPLACE(EmployeeMailId, '@', ''))) AS at_count FROM DemoTable;