Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Xóa 4 ký tự cuối trong MySQL?

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ài length
  • LENGTH(str): Độ dài tính bằng byte
  • LENGTH(StudentSubject) - 4: Độ dài mới = độ dài cũ - 4

Các hàm liên quan

Cách an toàn hơn: Chỉ xóa nếu đủ dài

UPDATE DemoTable 
SET StudentSubject = CASE 
    WHEN LENGTH(StudentSubject) > 4 
    THEN SUBSTRING(StudentSubject, 1, LENGTH(StudentSubject) - 4)
    ELSE StudentSubject
END;
HàmChức năngVí dụ
LEFT(str, len)Lấy len ký tự đầuLEFT('abcde', 3) → 'abc'
RIGHT(str, len)Lấy len ký tự cuốiRIGHT('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'