Sử dụng SUBSTRING() kết hợp LENGTH() trong lệnh UPDATE để cắt bỏ N ký tự cuối.
Tạo bảng môn học
mysql> CREATE TABLE DemoTable (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentSubject VARCHAR(100)
-> );
Chèn dữ liệu
mysql> INSERT INTO DemoTable(StudentSubject) VALUES('Introduction to Java');
mysql> INSERT INTO DemoTable(StudentSubject) VALUES('Introduction to C');
mysql> INSERT INTO DemoTable(StudentSubject) VALUES('Introduction to C++');
mysql> INSERT INTO DemoTable(StudentSubject) VALUES('Spring And Hibernate');
Xem dữ liệu gốc
mysql> SELECT * FROM DemoTable;
+-----------+----------------------+ | StudentId | StudentSubject | +-----------+----------------------+ | 1 | Introduction to Java | | 2 | Introduction to C | | 3 | Introduction to C++ | | 4 | Spring And Hibernate | +-----------+----------------------+
Xóa 4 ký tự cuối mỗi chuỗi
mysql> UPDATE DemoTable
-> SET StudentSubject = SUBSTRING(StudentSubject, 1, LENGTH(StudentSubject) - 4);
Query OK, 4 rows affected (0.16 sec)
Kết quả
mysql> SELECT * FROM DemoTable;
+-----------+------------------+ | StudentId | StudentSubject | +-----------+------------------+ | 1 | Introduction to | | 2 | Introduction | | 3 | Introduction to | | 4 | Spring And Hiber | +-----------+------------------+
Giải thích hàm
SUBSTRING(str, start, length): Trích từ vị trístart(1-based) độ dàilengthLENGTH(str): Độ dài tính bằng byteLENGTH(StudentSubject) - 4: Độ dài mới = độ dài cũ - 4
Các hàm liên quan
| Hàm | Chức năng | Ví dụ |
|---|---|---|
LEFT(str, len) | Lấy len ký tự đầu | LEFT('abcde', 3) → 'abc' |
RIGHT(str, len) | Lấy len ký tự cuối | RIGHT('abcde', 2) → 'de' |
SUBSTRING(str, -n) | Lấy n ký tự cuối (âm = từ cuối) | SUBSTRING('abcde', -2) → 'de' |
TRIM(TRAILING 'xyz' FROM str) | Xóa hậu tố 'xyz' nếu có | TRIM(TRAILING '.txt' FROM 'a.txt') → 'a' |