ใช้ REVERSE(SUBSTR(REVERSE(column), 4)) เพื่อตัด 3 ตัวท้าย (เก็บส่วนหน้า)
ตัวอย่างการใช้งาน
1. สร้างตารางรหัสนักเรียนมี -XXX ท้าย
mysql> CREATE TABLE DemoTable (StudentId VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES ('STU-090'), ('STU-123'), ('STU-678');
2. ตัด 3 ตัวท้าย (090, 123, 678)
mysql> SELECT REVERSE(SUBSTR(REVERSE(StudentId), 4)) FROM DemoTable;
ผลลัพธ์
+----------------------------------------+ | REVERSE(SUBSTR(REVERSE(StudentId), 4)) | +----------------------------------------+ | STU- | | STU- | | STU- | +----------------------------------------+
คำอธิบายตรรกะ
REVERSE('STU-090')→'090-UTS'SUBSTR(..., 4)→ ตัด 3 ตัวแรก (090) เหลือ'-UTS'REVERSE('-UTS')→'STU-'
วิธีง่ายกว่า
ใช้ LEFT + CHAR_LENGTH
SELECT LEFT(StudentId, CHAR_LENGTH(StudentId) - 3) FROM DemoTable;
ใช้ SUBSTRING_INDEX (ถ้ามีตัวคั่นคงที่)
SELECT SUBSTRING_INDEX(StudentId, '-', 1) FROM DemoTable; -- ได้ 'STU'
MySQL 8.0: ใช้ SUBSTRING กับตำแหน่งลบ
SELECT SUBSTRING(StudentId, 1, -4) FROM DemoTable; -- ตั้งแต่ต้น จนถึง 4 ตัวจากท้าย