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

ตัดทิ้ง 3 ตัวอักษรสุดท้ายของคอลัมน์ใน MySQL

ใช้ 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-                                   |
+----------------------------------------+

คำอธิบายตรรกะ

  1. REVERSE('STU-090') → '090-UTS'
  2. SUBSTR(..., 4) → ตัด 3 ตัวแรก (090) เหลือ '-UTS'
  3. 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 ตัวจากท้าย